Sitat av
semis
[entry] [messaging][attachments][payload][url] ?
sitter på tlf så får ikke prøvd atm. Du må åpne dictsa inne i dictsa
Jeg forstod ikke helt hvor / hvordan jeg bruker dette
Nå får jeg følgende feilmelding:
Kode
File "/home/user/robot.py", line 50, in receive_message
attachment_type=messaging_event['message']['attachments']["type"]
TypeError: list indices must be integers or slices, not str
Nå ser koden slik ut:
Kode
import random
from flask import Flask, request
from pymessenger.bot import Bot
app = Flask(__name__)
FB_API_URL = 'https://graph.facebook.com/v7.0/me/messages'
ACCESS_TOKEN = '420420'
VERIFY_TOKEN = '420420'
bot = Bot(ACCESS_TOKEN)
#We will receive messages that Facebook sends our bot at this endpoint
@app.route("/messenger", methods=['GET', 'POST'])
def receive_message():
print("Kommando starter...")
if request.method == 'GET':
print("Request er GET")
token_sent = request.args.get("hub.verify_token")
return verify_fb_token(token_sent)
print("Token er kanskje OK")
else:
print("Request er ikke GET")
if request.method == 'POST':
print("Request er POST")
output = request.get_json()
print(output)
if output["object"] == "page":
for entry in output["entry"]:
for messaging_event in entry["messaging"]:
#We got message
if messaging_event.get("message"):
##What is sender id, and which page recieve?
sender_id = messaging_event["sender"]["id"]
page_id = messaging_event["recipient"]["id"]
##If message is text, put it in message_text
if messaging_event['message'].get('text'):
message_text = messaging_event["message"]["text"]
print('Found text: ' + message_text + ', OK?')
####Se herfra, freak!
##If message is attachment
if messaging_event['message'].get('attachments'):
print("It is attachment")
attachment_type=messaging_event['message']['attachments']["type"] # Dette er linje 50
attachment_url=messaging_event['message']['attachments']["payload"]["url"] # Dette er linje 51
print("Found attachment type: " + attachment_type)
print("Found attachment url: " + attachment_url)
##If attachment type is image
if attachment_type == "image":
print("It is image")
attachment_url = attachment_event["url"]
print(attachment_url)
else:
print("Found unsupported attachment type")
####Stopp her, freak.
else:
print("Found unsupported message type")
return("ok", 200)
def verify_fb_token(token_sent):
if token_sent == VERIFY_TOKEN:
return request.args.get("hub.challenge")
print("hub.challenge")
return 'Invalid verification token'
if __name__ == "__main__":
app.run(debug=True)