Home Status code from Graph API after successful communication
Reply: 0

Status code from Graph API after successful communication

Cold Tison
1#
Cold Tison Published in 2018-02-12 14:35:56Z

my Facebook messenger based Echo-bot gives a wrong status code. Though the end user(admin until now) receives the accurate echoed message, the feedback my webhook receives gives from Graph API is:

{"error":{"message":"(#100) No matching user found","type":"OAuthException","code":100,"error_subcode":2018001,"fbtrace_id":"Fan1swU4dF8"}}

Even after much reviewing and surfing, I haven't been able to find out the problem with my webhook code.Below it is:

import os, sys
import requests
from flask import Flask, request
import json
from random import random, choice 

page_access_token="page_access_code"
chatbot=Flask(__name__)                                               

@chatbot.route('/', methods=['GET'])                                
def verify():
    print("Handling verification...")
    if request.args.get('hub.verify_token', '')=='verify_token':
        print("Verified!!")
        return request.args.get("hub.challenge",'')
    else:
        print("Wrong request!!")
        return "error!!"


@chatbot.route('/', methods=['POST'])                                
def webhook():
    data=request.get_json()
    log(data)                                                       
    if data["object"]=="page":                                      
        for entry in data["entry"]:
            for things in entry["messaging"]:

                if things.get("message"):
                    s_id= things["sender"]["id"]                    
                    r_id= things["recipient"]["id"]                 
                    log("Sender id:"+ s_id)
                    log("Receiver id: "+ r_id)
                    try:
                        messaging_text= things["message"]["text"]          
                        send_message(s_id, str(messaging_text))
                    except:
                        send_message(s_id, "Sorry!! Couldn't understand that..")

                    if things.get("delivery"):
                        log("message delivered..")
                    elif things.get("optin"):
                        pass
                    elif things.get("postback"):
                        pass
    return 'ok', 200                                    




def send_message(r_id, messaging_text):                      
    r_id=str(r_id)
    log("sending message to {recipient}: {text}".format(recipient=r_id, text=messaging_text))

    params = {
        "access_token": page_access_token
    }
    headers = {
        "Content-Type": "application/json"
    }
    data = json.dumps({
        "recipient": {
            "id": r_id
        },
        "message": {
            "text": str(messaging_text)
        }
    })
    r = requests.post("https://graph.facebook.com/v2.12/me/messages", params=params, headers=headers, data=data)
    if r.status_code != 200:
        log(r.status_code)
        log(r.text)

def log(message):
    print(message)
    sys.stdout.flush()

if __name__=="__main__":
    chatbot.run(debug=True, port=5000)

PS. I am a noob so a proper description or a link will be really helpful for me to know the flaw.

You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.307093 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO