Realtime Updates API으로 내 앱에 대한 구독을 설정하려고했지만 몇 가지 문제가있었습니다. 내가 적절하게 문서를 다음과 HTTP GET 및 POST를 처리하는 아마존 EC2 인스턴스에 플라스크 엔드 포인트를 구성한Python의 Facebook 실시간 업데이트 구독 확인
{"error":{"message":"(#2200) callback verification failed: Operation timed out after 6000 milliseconds with 0 bytes received","type":"OAuthException","code":2200}}
: 우선, 이것은 내가 점점 계속 오류입니다. 수동으로 구독 코드를 호출하기 위해 내가 직접 조회하고 엔드 포인트를 종료합니다.
curl -i -X GET http://public-ip-of-ec2:5000/subscribe
위의 컬은/내 EC2 인스턴스에 가입의 경로 플라스크 응용 프로그램에서 실행되는 스크립트를 호출합니다. access_token, object, fields, verify_token 및 callback_url을 포함한 필수 쿼리 문자열 매개 변수를 사용하여 POST를 수행하려면 파이썬 HTTP 라이브러리 requests을 사용하고 있습니다.
VERIFY_TOKEN = 'my_verify_token'
@app.route('/subscribe')
def subscribe():
global VERIFY_TOKEN
FB_CLIENT_ID = 'my_app_id'
# access_token is sent as a query string parameter
APP_ACCESS_TOKEN = 'my_app_access_token'
# object, fields, callback_url, and verify_token are sent as urllib.urlencode([('param','val')])
CALLBACK_URL = 'http://my-public-ec2-ip:5000/'
payload_url = "https://graph.facebook.com/{0}/subscriptions".format(FB_CLIENT_ID)
payload = {"access_token": APP_ACCESS_TOKEN, "object": "user", "fields": "feed", "verify_token": VERIFY_TOKEN, "callback_url": CALLBACK_URL}
r = requests.post(payload_url, data=payload)
return r.text
@app.route('/', methods=['GET','POST'])
def handle_requests():
global VERIFY_TOKEN
if request.method == 'GET':
mode = request.args.get('hub.mode')
challenge = request.args.get('hub.challenge')
verification = request.args.get('hub.verify_token')
# if we have our verification token back echo the challenge back to facebook
if verification == VERIFY_TOKEN:
return challenge
elif request.method == 'POST':
# do some stuff with the updates
나는 왜 { "오류"를 받고 있어요에 같은 혼란 스러워요 : { "메시지": "(# 2200) 검증이 실패 콜백 : 작업받은 0 바이트로 6000 밀리 초 후 시간 초과" "유형": "OAuthException", "코드": 내 플라스크 응용 프로그램을 불 때 2200}}
나는 페이스 북 IP 주소 인 173.252.110.113에서 GET 요청을 볼 수 있기 때문이다. 필자는 테스트를 위해 테스트를 내 로그에 인쇄하여 정확한 데이터를 반향시키고 있는지 제대로 테스트했습니다. 따라서 코드는 Facebook이 구독을 확인하는 데 필요한 챌린지를 반환하고 그 시점에서 구독이 성공해야하지만 앞서 언급 한 오류가 발생합니다. 아마도 ec2 보안 그룹이나 무언가에 대한 권한을 추가해야하는 보안 문제 일 수 있습니까?
미리 도움을 청하십시오!