Search code examples
djangofacebookfacebook-graph-apichatbotfacebook-messenger-bot

Facebook Messenger Bot - Invalid URL button fields for List Template


I have been working to send a list to user containing some data. I am following facebook's doc to setup my request payload. However, I am getting the following error:

{'error': {
    'message': '(#100) Invalid URL button fields provided. Please check documentation for details.', 
    'type': 'OAuthException', 
    'code': 100, 
     'error_subcode': 2018125, 'fbtrace_id': 'GZFFcM+j5e/'}} 

Here is my JSON Payload:

{'recipient': {'id': 'MY_MESSENGER_ID'}, 
 'message':
    {'attachment': 
       {'type': 'template', 
        'payload': 
          {'template_type': 'list', 
           'top_element_style': 'compact', 
            'elements': 
                [{'title': 'Hello 1', 'subtitle': 'Subtitle 1', 
                 'buttons': 
                    [{'title': 'View', 'type': 'web_url', 
                      'url': 'https://www.medium.com/', 
                      'messenger_extensions': 'false', 
                      'webview_height_ratio': 'full',
                      'fallback_url': 'https://www.medium.com/'}],
                 'default_action': 
                    {'title': 'View', 'type': 'web_url', 
                    'url': 'https://www.medium.com/',
                    'messenger_extensions': 'false', 
                    'webview_height_ratio': 'full', 
                    'fallback_url': 'https://www.medium.com/'}}, 
              {'title': 'Hello 2', 'subtitle': 'Subtitle 2', 
               'image_url': 'https://cdn-images-1.medium.com/1*Vkf6A8Mb0wBoL3Fw1u0paA.jpeg', 
               'buttons': 
                      [{'title': 'View', 'type': 'web_url', 
                         'url': 'https://www.medium.com/',
                         'messenger_extensions': 'false', 
                         'webview_height_ratio': 'full', 
                         'fallback_url': 'https://www.medium.com/'}], 
               'default_action': 
                      {'title': 'View', 'type': 'web_url', 
                       'url': 'https://www.medium.com/', 
                       'messenger_extensions': 'false',
                       'webview_height_ratio': 'full', 
                       'fallback_url': 'https://www.medium.com/'}}]}}}} 

I have checked, re-checked it multiple times. PLUS, I have sent the facebook's example json from the doc but I have got the same reply. Please take a look and let me know where I am stuck!

This is my end url: "https://graph.facebook.com/v2.6/me/messages?access_token="

Thanks in advance!


Solution

  • Your request has two issues:

    • For default_action, you can set fallback_url only if messenger_extensions:true
    • default_action cannot have a title prop.

    Try this:

    { "recipient": { "id": "{{PSID}}" }, "message": { "attachment": { "type": "template", "payload": { "template_type": "list", "top_element_style": "compact", "elements": [{ "title": "Hello 1", "subtitle": "Subtitle 1", "buttons": [{ "title": "View", "type": "web_url", "url": "https://www.medium.com/", "messenger_extensions": "false", "webview_height_ratio": "full" }], "default_action": { "type": "web_url", "url": "https://www.medium.com/", "messenger_extensions": "false", "webview_height_ratio": "full" } }, { "title": "Hello 2", "subtitle": "Subtitle 2", "image_url": "https://cdn-images-1.medium.com/1*Vkf6A8Mb0wBoL3Fw1u0paA.jpeg", "buttons": [{ "title": "View", "type": "web_url", "url": "https://www.medium.com/", "messenger_extensions": "false", "webview_height_ratio": "full" }], "default_action": { "type": "web_url", "url": "https://www.medium.com/", "messenger_extensions": "false", "webview_height_ratio": "full" } } ] } } } }