Как обрабатывать запросы проверки Facebook в приложении фляги - PullRequest
0 голосов
/ 17 июня 2019

Я настраиваю приложение-колбу в Heroku для настройки веб-хуков для фишинговых сертификатов, извлекаемых из API прозрачности сертификатов Facebook. Я пытаюсь получить запросы на подтверждение Facebook (Facebook отправляет запрос GET с запросом hub.challenge), однако я не понимаю, как предоставить им необходимую информацию. Прежде чем предложить использовать предварительно созданное в Facebook приложение Heroku, я делаю это для изучения.

Я попытался найти дополнительную информацию о запросах GET, однако это не помогло мне решить эту проблему.

Это веб-сайт Facebook на этом. https://developers.facebook.com/docs/graph-api/webhooks/getting-started#verification-requests

@app.route("/facebook", methods=['GET', 'POST'])
if request.method == 'GET':
    def get_facebook(mode, challenge, verify_token):
        #not sure what to put in here

1 Ответ

0 голосов
/ 18 июня 2019

После просмотра документов, несколько указателей:

  • Вы получите запрос как GET, поэтому вам не понадобится значение 'POST' в методах
  • Значения, отправленные из Facebook, будут аргументами запроса, и к ним можно получить доступ, используя request.args.get('e.g.')
  • Facebook ожидает возврата int, и вам решать, что это такое.

Результат (отказ от ответственности: это не проверено!):

import datetime
from flask import jsonify

@app.route("/facebook", methods=['GET'])
def get_facebook():
    my_token = 'abc123' # The token you setup on the App dashboard

    if request.args.get('hub.verify_token') == my_token:
        # The token is valid, return the (current datetime as an int)
        # Assuming facebook is expecting a JSON result value
        return jsonify({'hub.challenge': int(datetime.datetime.now().timestamp())})


    return 'invalid', 403
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...