2012-04-14 40 views
0

是否有可能通過js api獲取用戶最長的令牌?交換令牌js api或php多查詢

如果不是通過單個查詢獲取多個用戶令牌?

我得到這樣的標記;

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

回答

0

因爲Ajax請求僅限於您的域(跨域安全策略)不能發出一個Ajax請求該網址,但您可能能夠使用Facebook的JavaScript 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的API有什麼所謂Batch Requests,它讓你做一些API查詢在一個請求中,但我不確定它是否適用於相對路徑「oauth/access_token」,但歡迎您嘗試它。

+0

@Nitaz Tomer ...我越來越。未捕獲的ReferenceError:賦值中的左手邊無效。我遵循相同的語法 – 2015-11-03 09:03:39

+0

@ RED​​.Skull這是一個js錯誤..你可能做了一些錯誤的事情,可能使用一個'='來比較而不是兩個或三個('=='或'===')。 如果你不能解決它,我建議你發佈一個全新的關於它的問題,雖然可能有一些已經存在的主題 – 2015-11-03 09:35:43