Comments 16
Хочется более подробной информации о декодировании и верификации signed_request с примерами. А то уж очень поверхностно прошлись.
я не понимаю — почему так криво все. Страшно FB гений как то все извратил — простые вещи делает ужасно.
Получил сегодня ключи и не могу на Python подключится.
graph = facebook.GraphAPI(oauth_access_token)
profile = graph.get_object(«me»)
friends = graph.get_connections(«me», «friends»)
graph.put_object(«me», «feed», message=«I am writing on my wall!»)
Вот пример кода.
Your OAuth client_id — передаю как oauth_access_token.
Что не так делаю?
вот я работаю как раз с такой авторизацией (конкретно Graph API).
я получаю access_token и пользуюсь им. Но проблема, он имеет время жизни.
Я так понял access_token нельзя сохранить в профиль пользователся моего сайта, что бы не логинится в FB каждый. ( а нужно что бы пользователь залогинился в FB единожды, а потом на моем сайте всегда подгружался его feed).
и ссылочку «4. Javascript SDK» подправте.
Насколько помню https://graph.facebook.com/oauth/authorize?scope=offline_access&client_id=%s&redirect_uri=%s — по такому шаблону-урлу нужно получать «вечный» токен т.е. опция scope=offline_access
подскажите, пожалуйста, допустим я получил offline_access и access_token. Как потом после перезапуска приложения получить новый access_token? (desktop приложение с embedded браузером, доступа к cookies нет)
Расскажу как я делал:
У меня софтина была консольная без встроенных браузеров)) Там нужно вручную через браузер в фейсбуке перейти по урл 'https://graph.facebook.com/oauth/authorize?scope=offline_access&client_id=%s&redirect_uri=%s'%(client_id, redirect_url)
при этом фейсбук при удачной авторизации редиректит браузер на redirect_url+несколько_GET_параметров после чего мы из этого урла (на который редиректит фейсбук… я просто просил скопипастить строку браузера после редиректа моей софтине) выдергиваем параметр code и делаем уже из самого приложения запрос на "https://graph.facebook.com/oauth/access_token?client_id=%s&redirect_uri=%s&client_secret=%s&code=%s"%(client_id, redirect_uri, client_secret, code) где secret это код из админки приложения на FB, code — код из предыдущего действия а client_id и redirect_uri те же. В теле ответа будет содержаться строка с URL, в параметре access_token которого и будет наш токен.
И уже этот токен я сохранял перманентно и при повторном запуске софтины использовал непосредственно его — он действует бесконечно (если только его не отзовут).
Т.е. заново ничего больше не получал, сохранял access_token.
спасибо!
хммм, а я отказался от хранения access_token из соображения безопасности (у меня casual игра)
только что думал воспользоваться своим сервером, чтобы внутри DB хранить access_token'ы авторизованных пользователей, и каждый раз передавать с сервера приложению, но опять же я не уверен, что это безопасно.

извиняюсь за даблпост
насколько я помню, code параметр из первого редиректа одноразовый.

А насчет хранения access_token — вроде как его в случае чего можно сбросить через админку приложения на фейсбуке (не уверен, но вроде только все токены сразу, для конкретного клиента нет)
Да и если слишком много прав не запрашивать то и навредить с этим токеном мало где можно
спасибо!
хммм, а я отказался от хранения access_token из соображения безопасности (у меня casual игра)
только что думал воспользоваться своим сервером, чтобы внутри DB хранить access_token'ы авторизованных пользователей, и каждый раз передавать с сервера приложению, но опять же я не уверен, что это безопасно.
делаю запрос прав первым способом т.е. редиректом на https://graph.facebook.com/oauth/authorize?
у меня приложение настроено, так
Canvas Type -IFrame
IFrame Size -Show scrollbars
JSON Encoding Empty Arrays — Enabled
November 2010 Rollup -Enabled

при этом, после редиректа во фрейме приложения отображается какой то кусок шапки facebook.com и все
догался посмотреть в браузере «фрейм->открыть в новой вкладке» — в новой вкладке отлично отображается искомый диалог «Запрос доступа»
получается после редиректа не страбатывает какой то js для отрисовки диалога.

кто-либо знает, как бороться?
спасибо
Only those users with full accounts are able to leave comments. Log in, please.