2
私はクイックスタートのFacebookメッセンジャーボットコードを追跡しようとしている(https://developers.facebook.com/docs/messenger-platform/quickstartこちらをご覧ください):エラーが
{「エラー」:{」 "、" type ":" OAuthException "、" code ":100、" fbtrace_id ":" ALtKsX4nJtX "}}
アイデアはありますか?私は正しい反応を返すようだが、何らかの理由でFacebookがそれを受け入れていないのだろうか?おかげ
コード(パイソン/ AppEngineの)次のように:私はちょうどあなたの機能respond_FB(sender_id, text)
でテストされ、私はGoogleのApp EngineのAPIを持っていないので、私はrequests
response = requests.post(url, json=data)
を使用
import webapp2
import json
import urllib
from google.appengine.api import urlfetch
class MainHandler(webapp2.RequestHandler):
print "hello"
FB_MESSENGER_ACCESS_TOKEN = ""
def respond_FB(sender_id, text):
json_data = {
"recipient": {"id": sender_id},
"message": {"text": text + " to you!"}
}
url = "https://graph.facebook.com/v2.6/me/messages?access_token="+FB_MESSENGER_ACCESS_TOKEN
print("json_data", json_data)
data = urllib.urlencode(json_data)
response = urlfetch.fetch(url = url, payload = data, method = urlfetch.POST, headers = {"Content-Type": "application/json"})
print(response.content)
class FacebookMessenger(webapp2.RequestHandler):
def get(self):
if (self.request.get("hub.verify_token") == 'tomstoken'):
return self.response.write(self.request.get("hub.challenge"))
return self.response.write('Error, wrong validation token')
def post(self):
body = self.request.body
messaging_events = json.loads(body.decode("utf-8"))
sender_id = messaging_events["entry"][0]["messaging"][0]["sender"]["id"]
message = messaging_events["entry"][0]["messaging"][0]["message"]["text"]
respond_FB(sender_id, message)
return self.response.write('Received.')
app = webapp2.WSGIApplication([
('/', MainHandler),
('/webhook*', FacebookMessenger)
], debug=True)
str(sender_id)にsender_idをラップする必要がありますか? – tomcritchlow