Facebook Messenger Bot verification

10.5k Views Asked by At

I submitted my facebook messenger bot for app review and the rejection reason was "received no response".

I've tested my bot from my own account and some other testers that I added to my facebook app for testing. However, when I try to test using the default Open Graph Test User I don't get any response. The Send Message API fails with error:

{"error": {"message":"(#100) No matching user found", "type":"OAuthException", ...}}

What am I doing wrong here? How can I send message to test users using the Send/Receive message API?

4

There are 4 best solutions below

2
On BEST ANSWER

I had the same problem and got responses in the facebook developers community. It seems like it is confirmed bug: https://developers.facebook.com/bugs/230322797329131/?hc_location=ufi

Update: It seems to work now. Since Tuesday this week I can see reviewers sending messages to the bot and get responses in the messages of the page.

1
On

Answers below:

1) You shouldn't submit for App Review without testing to see if your stuff works.

2) I'm guessing you used the user ID from the Test User interface. If you read the docs more closely, you'll see that the user IDs used for Messenger Platform is different than user IDs you get from Facebook Login (which is what the test user interface shows). Read the "Send/Receive API" section under https://developers.facebook.com/docs/messenger-platform/implementation#send_message

0
On

The FB application webhooks should be subscribed only for the following events:

  • messages
  • messaging_postbacks

subscribing to one of the others events might throw that exception.

source here: https://developers.facebook.com/bugs/578746852290927/?hc_location=ufi

1
On

My problem was

I am sending recipient id instead sender id in my json data.

dict_to_send = {
   'message': {'text': u'hello FB'},
   'recipient': {'id': **'*sender_id_here*'**}
}
res = requests.post("https://graph.facebook.com/v2.6/me/messages?access_token=your_token_here", <br>data=json.dumps(dict_to_send), headers = {'content-type':'application/json'})