2017-06-28 12 views
0

Ich möchte einen Chatbot, der in Python erstellt und auf aws Lambda bereitgestellt wurde, mit einer Facebook-Seite verbinden.facebook messenger Weebhok subscription error

dies ist mein Code Anschluss an verifly

def webhook(event, context): 
     # #debug 
     print("event:") 
     print(event) 
     # print("context") 
     # print(context) 

     #handle webhook challenge 
     if keys_exist(event, ["queryStringParameters"]): 
      print("Veriflying stuff") 
      v_token = str(find_item(event, 'hub.verify_token')) 
      print("token :") 
      print (v_token) 
      challenge = int(find_item(event, 'hub.challenge')) 
      print ("challenge") 
      print(challenge) 
      if (os.environ['verify_token'] == v_token): 
       print ("returning stuff") 
       return (challenge) 

Aber facebook sagt The URL couldn't be validated. Callback verification failed with the following errors: HTTP Status Code = 502; HTTP Message = Bad Gateway

ich mit serverless die URLs erstellt haben facebook. Es funktioniert gut, wenn ich eine Anfrage vom Browser bekomme.

Ich habe die gleiche URL in der Facebook-Webhook-Seite angegeben. Und stellen Sie sicher, dass die Validierung und Verify Token korrekt sind.

Ich habe ein paar Dinge ausprobiert, die ich online sah. Aber ich verstehe nicht ein paar von ihnen wie dieser Facebook Messenger API "URL COULD NOT BE VALIDATED" Ich verstehe nicht, wenn ich eine Cert-Datei für diese nnte?

AND "The URL could not be validated", facebook api error sagt zu Pfad zu einem PHP geben. Was ich nicht einmal benutze?

+0

Welche URL geben Sie Facebook? Existiert diese URL? Was passiert, wenn Sie selbst auf diese URL zugreifen? –

+0

Die URL existiert und gibt eine Standardantwort zurück, wenn die Schlüssel nicht gefunden werden. –

Antwort

0

Ich habe das Problem gefunden. Facebook benötigt jetzt auch den Statuscode der Anfrage.

if keys_exist(event, ["queryStringParameters","hub.verify_token","hub.challenge"]): 
      print("subscribe to webhook invoked") 
      v_token = str(find_item(event, 'hub.verify_token')) 
      challenge = find_item(event, 'hub.challenge') 
      if ("strongtoken" == v_token): 
       response = { 
        "statusCode": 200, 
        "body": str(challenge) 
       } 
       print(challenge) 
       return response