2016-03-31 2 views
0

Я пытаюсь написать сценарий на Python, который извлекает список моих друзей из facebook. Чтобы получить данные, мне нужно получить токен доступа. Я использую пакет request_oauthlib для достижения того же. Поскольку я не пишу веб-приложение, я не использовал локальный веб-сервер (без URL-адреса перенаправления). Я выбираю использовать тип полномочий учетных данных пароля владельца ресурса. Я получаю ошибку.Отсутствует ошибка redirect_uri для учетной записи владельца ресурса. Тип разрешения

Это мой код:

from requests_oauthlib import OAuth2Session 
from oauthlib.oauth2 import LegacyApplicationClient 

FACEBOOK_APP_ID = '**********' 
FACEBOOK_APP_SECRET = '*********' 
username = 'Aman Mittal' 
password = '****' 
token_url = "https://graph.facebook.com/oauth/access_token" 

oauth = OAuth2Session(client=LegacyApplicationClient(client_id=FACEBOOK_APP_ID)) 
oauth_access_token = oauth.fetch_token(token_url, client_secret=FACEBOOK_APP_SECRET,username=username, password=password, client_id=FACEBOOK_APP_ID) 

Когда я запускаю сценарий, он показывает ошибку - «Отсутствует маркер доступа параметр»

Я прошел через TRACEBACK и понял, что маркер доступа получил это:

{"error":{"message":"Missing redirect_uri parameter.","type":"OAuthException","code":191,"fbtrace_id":"CUSmQKT8YGb"}} 

Прежде всего, я не понимаю, используя при использовании клиента устаревшего приложения (тип полномочий учетной записи владельца ресурса), зачем мне перенаправлять uri?

Если я предпочитаю запускать веб-сервер, используя web.py или что-то еще. Как зарегистрировать его на Facebook? или мне даже нужно?

PS. Я новичок и для Python, и для публикации в Stack Overflow. Пожалуйста, попробуйте объяснить подробности и простите меня, если я совершу какую-либо глупую ошибку.

+0

Вы не можете. Пользователь должен интерактивно войти в систему. – WizKid

+0

Я уже вошел в свою учетную запись, если вы говорите об этом, и я думаю, что вы этого не делаете. Мы используем перенаправление uri для прямого доступа к клиенту после получения авторизации от него. Но мне не нужно авторизоваться, когда у меня уже есть свой пароль. Я могу просто попросить токен доступа. Тогда почему интерактивно? –

+0

Вам нужен URL-адрес перенаправления. В браузере пользователь будет перенаправлен на Facebook, а затем перенаправлен обратно на указанный вами URL. Это интерактивная часть. – WizKid

ответ

0

Facebook не поддерживает тип предоставления полномочий учетной записи владельца ресурса OAuth 2.0.

+0

Так не обойтись без веб-сервера .. а? –

+0

не уверен в этом комментарии: не обойтись без браузера было бы лучшим описанием –

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