Поэтому я пытаюсь использовать Graph API с Facebook JS SDK и получаю следующую ошибку в Safari:
"OAuthException: активный токен доступа должен использоваться для запроса информации отекущий пользователь. "
Я подозревал, что это связано с тем, что Safari очень строг с настройкой файлов cookie для x-домена, и поэтому я попробовал это в Firefox с параметром cookie
, установленным в false в FB.init()
.Я действительно обнаружил, что получаю ту же ошибку для моих FB.api()
запросов.
FB.init({
appId: "<%= app_id %>",
status: true, // check login status
// We cannot rely on this cookie being set in an iframe. I found this
// out because the Graph API was not working in Safari.
// cookie: true, // enable cookies to allow the server to access the session
xfbml: true, // parse XFBML
channelUrl: window.location.protocol + '//' + window.location.host + '/fb/canvas/channel.html'
});
Так что мне интересно ... Есть ли хороший способ вручную установить параметр запроса access_token
вFB.api()
запрос?
Если файл cookie FB.init()
настроен правильно, то параметры запроса FB.api()
выглядят следующим образом:
access_token xxxxxxxxxxxx|1.xxxxxxxxxxxxxxxxxxxxxx__.3600.xxxxxxxxxx-xxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx
callback FB.ApiServer._callbacks.xxxxxxxxxxxxxxx
pretty 0
sdk joey
в Safari (или когда cookie
FB.init()
опция не установлена) параметры запроса FB.api()
выглядят так:
callback FB.ApiServer._callbacks.xxxxxxxxxxxxxxx
pretty 0
sdk joey
Теперь ... очевидно, мое приложение имеет возможность генерировать access_token
на стороне сервера ...Мне интересно, есть ли способ вручную установить FB.api()
для использования сгенерированного на сервере access_token
.