2012-02-20 2 views
2

Я пытаюсь реализовать Facebook Realtime api с моим приложением. Я хочу вытащить каналы из моей «facebook PAGE». я получен app_access_token ...Что такое проверка токена в Facebook Realtime API

app_access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'  

url = 'https://graph.facebook.com/' + FB_CLIENT_ID + '/subscriptions?access_token=' + app_access_token 

url_params = {'access_token':app_access_token,'object':'page', 'fields':'feed', 'callback_url':'http://127.0.0.1:8000/fb_notifications/', 'verify_token' : 'I am taking a random string here...'} 

urlResponse = call_url(url, url_params) 

Everytime я называю URL с параметрами URL-адрес, я получаю ошибку: Ошибка HTTP 400: Bad Request Но если я называю URL без параметров URL-адреса, я получаю {"data": []}

Обратите внимание, что в параметрах url я беру verify_token, случайная строка и callback_url не такие же, как параметр redirect_url для приложения facebook. (Просто хотите знать, нужно ли здесь здесь же указать URL-адрес?)

Пожалуйста, скажите мне, что я делаю неправильно? Я использую python/django для реализации.

+1

-1: Ни сам вопрос, ни принял ответ иметь ничего общего с названием вопроса. Результаты поиска возвращают этот вопрос, который не помогает. –

ответ

2

Используйте POST, а не GET, с пустым телом & object, fields, callback_url и verify_token передается в качестве параметров запроса в URL.

См. https://developers.facebook.com/docs/reference/api/realtime/.

+0

В моем коде call_url делает POST-вызов ... Код - urlresponse = urllib2.urlopen (url, urllib.urlencode (url_params), timeout = socket.getdefaulttimeout()). Read() .... И я ' вы пытались удалить access_token из url_params ... все еще не работает .... :( –

+0

Обновлен мой ответ на основе вашего комментария. –

+0

Nope .... Все еще не работает ... Можете ли вы предоставить мне несколько примеров кода добавив подписку на Facebbok в реальном времени api .... Спасибо ... :) –

2

Я понял это ... . . . . Сделать запрос POST к URL:

'https://graph.facebook.com/' + FB_CLIENT_ID + '/subscriptions?access_token=' + app_access_token + '&object=page&fields=name&callback_url=' + YOUR_CALLBACK_URL + '&verify_token=' + ANY_RANDOM_STRING + '&method=post' 

Pass {} в качестве почтовых параметров ..... Убедитесь, что your_callback_url должен быть доступен. Он не будет работать на локальном хосте (я так думаю ... я не смог проверить его на локальном хосте.)

Таким образом, в Python код должен быть:

url = 'https://graph.facebook.com/' + FB_CLIENT_ID + '/subscriptions?access_token=' + app_access_token + '&object=page&fields=name&callback_url=' + YOUR_CALLBACK_URL + '&verify_token=' + ANY_RANDOM_STRING + '&method=post' 

url_params = {} 

urlResponse = urllib2.urlopen(url, urllib.urlencode(url_params), timeout=socket.getdefaulttimeout()).read() 

urlResponse должен быть пустым.

Функция с приложением callback_url должен возвращать:

def callback_function(request): 
    if request.GET: #(Handle this properly!!!) 
     return request.GET.get('hub.challenge') #hub_challenge for PHP Developers. :) 

Пожалуйста, дайте мне знать, в случае каких-либо сомнений !!!

Чтобы знать, как обращаться уведомления от FB: Пожалуйста, посетите следующий URL: Handling notifications request from Facebook after successful subscription

+0

Примите мой ответ выше (а не свой собственный) - хотя это не был Python, он дал вам решение. –

+0

Да, конечно .. ..решение было дано вами ... Еще раз спасибо ... :) –

Смежные вопросы