View Single Post
Feilmeldingen jeg får er

Kode

  File "/home/user/robot.py", line 41, in receive_message
    attachment_type = messaging_event["attachments"]["type"]
KeyError: 'attachments'
Nå prøvde jeg med å bytte ut "attachments" med noe random, da dukket ikke feilmeldingen opp (bare så det er spesifisert: Funksjonen fungerte heller ikke da, selvfølgelig!). Nå forstår jeg ihvertfall ikke hvor problemet ligger....

Kanskje greit å ta med hele koden jeg utvikler nå, beklager at jeg bytter mellom norsk og engelsk kommentarer, jeg som roter litt

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('It is text, ' + message_text + ', OK?') 

          ##If message is attachment
         if messaging_event['message'].get('attachments'):
          #for attachment_event in entry["messaging"]["attachments"]:
           attachment_type = messaging_event["attachments"]["type"]
           attachment_url = messaging_event["attachments"]["url"]
           print(attachment_url)
           print("It is attachment")
     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)
Sist endret av Stingray; 5. august 2020 kl. 19:11.