Python: Facebook API показывает неверный токен

я используюAPI-интерфейс facepy facebook graph чтобы получить доступ к моему почтовому ящику / сообщениям, и я следовал следующие два подхода:

1st Approach:

Я использовалaccess token Я получил отGraph Explorer Facebook страницу и используйте следующий код:

from facepy import GraphAPI
graph = GraphAPI(token)
print graph.get('/me')
#Rest of the code

Приведенный выше код работал нормально, и я смог получить все свои сообщения, используяFQL Query, Проблема возникла, когда мой auth_tokenexpired через некоторое время.

Итак, после некоторого поиска в Google я перешел кapproach two:

Теперь то, что я сделал, было создано приложение для Facebookread_mailbox разрешение и получил егоid and key а затем использовалget_application_access_token метод facepy для получения токена.

После получения токена я использовал:

token = facepy.utils.get_application_access_token(app_id, key)
graph.get('/me')
## OUT: OAuthError: [2500] An active access token must be used to query information about the current user.
facepy.utils.get_extended_access_token(token, app_id, key)
# OUT: OAuthError: [1] No user access token specified

Теперь вы можете увидеть ошибку (commented #) генерируется при использовании токена приложения.

Я считаю, что ошибка, которую я получаю, в том, что Facebook нуждается вuser_token и я снабжаю егоapp_token.

Итак, возможно ли получить доступ к данным пользователя с помощью app_token, и если нет, то как можно выдатьextended token который может получить доступ к данным пользователя.

Update:

Итак, я последовал предложению @Johannes и попробовал это, но натолкнулся на ошибку:

from facepy.utils import get_extended_access_token
from facepy import GraphAPI
token = "My user access token got from https://developers.facebook.com/tools/explorer"
long_lived_access_token = get_extended_access_token(token)
graph = GraphAPI(long_lived_access_token)
graph.get('/me')

Теперь, когда я запустил приведенный выше код, я получил

TypeError: get_extended_access_token() takes exactly 3 arguments (1 given)

Итак, я изменил его наlong_lived_access_token = get_extended_access_token(token, None, None) и получил

facepy.exceptions.OAuthError

Итак, я снова изменил его наlong_lived_access_token = get_extended_access_token(token, app_id, key) и я получил то же исключение / ошибку, что и выше.

Итак, это ошибка или я делаю что-то не так.

PS: я установил последнюю версию из git.

Ответы на вопрос(2)

Ваш ответ на вопрос