View Single Post
Sitat av semis Vis innlegg
[entry] [messaging][attachments][payload][url] ?
sitter på tlf så får ikke prøvd atm. Du må åpne dictsa inne i dictsa
Vis hele sitatet...
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)