2012-04-14 5 views
0

Возможно ли, чтобы пользователи увеличивали токены через js api?Exchange token js api или php multi query

Если это не о том, как получить множественный токен пользователя с одним запросом?

Я получаю такие жетоны;

https://graph.facebook.com/oauth/access_token?client_id=xxx&client_secret=xxx&grant_type=fb_exchange_token&fb_exchange_token=".$u[token]

ответ

0

Вы не можете выдать АЯКС запроса на этот URL, поскольку Ajax запросов ограничиваются доменом (политики безопасности между доменами), но вы можете быть в состоянии использовать Facebook яваскрипт SDK, хотя я «Не уверен, что это сработает.

Что-то вроде:

FB.api("oauth/access_token", "get", { 
    client_id: xxx, 
    client_secret: xxx, 
    grant_type: "fb_exchange_token", 
    fb_exchange_token: currentToken 
}, function(response) { 
    console.log(response); 
}); 

Даже если это работает, это не то, что вы должны использовать, так как вы иметь включить приложение секрет с просьбой, и так как вы хотите сделать это с клиента сторона это означает, что секрет приложения больше не будет секретом.

Кроме того, в чем смысл этого? До тех пор, пока пользователь взаимодействует с приложением, вы можете просто использовать то, что он говорит в Handling Invalid and Expired Access Tokens:

Desktop Web and Mobile Web apps which implement authentication with the Javascript SDK

Calling FB.getLoginStatus() or ensuring status: true is set when you call FB.init() means that the next time a user lands on your application and is signed into Facebook, the authResponse object you are passed as a result of those calls will contain a fresh, valid access token.

In this case, its simply the act of the user using your application which implicitly generates a new access token.

Что касается другого вопроса, то facebook апи имеет то, что называется Batch Requests, которые позволяют сделать несколько API запросов в одном запросе, но я не уверен, что он работает для относительного пути «oauth/access_token», но вы можете попробовать его.

+0

@Nitaz Tomer ... Я получаю. Uncaught ReferenceError: Недопустимая левая сторона в назначении. Я последовал тому же синтаксису –

+0

@ RED.Skull, это ошибка js .. вы, вероятно, сделали что-то неправильно, возможно, использовали один '=' для сравнения вместо двух или трех ('==' или '==='). Если вы не можете это решить, я предлагаю вам опубликовать совершенно новый вопрос об этом, хотя, вероятно, есть несколько, которые уже существуют по этому вопросу –