我是关于使用facebook登录的整个系统的新手。我刚刚通过facebook了解了OAuth2.0系统,我确实理解它是如何工作的,但是我无法理解如何使它与我的应用程序一起工作并获取访问令牌,然后从图形api获取信息。
<a href="https://graph.facebook.com/oauth/access_token?client_id=241467205957761&redirect_uri=https://apps.facebook.com/optionsminer&client_secret=17b3847f0d32667eb75ac3270fcbdbe7">asdasda</a>
例如,如果我有这个,它似乎没有工作,它给我json的错误
{
"error": {
"message": "Error validating client secret.",
"type": "OAuthException",
"code": 1
}
我不确定如何进一步处理这件事。如果你们中的任何人能引导我一点点,那就太好了! 谢谢! }
答案 0 :(得分:2)
查看working examples from Facebook。
如果您仅使用javascript构建应用,则只会使用client_id
。 client_secret
用于从服务器端代码(例如Rails或PHP应用程序)请求令牌。
<html>
<head>
<title>Client-side OAuth Example</title>
</head>
<body>
<script>
function displayUser(user) {
var userName = document.getElementById('userName');
var greetingText = document.createTextNode('Greetings, ' + user.name + '.');
userName.appendChild(greetingText);
}
var appID = YOUR_APP_ID;
if (window.location.hash.length == 0) {
var path = 'https://www.facebook.com/dialog/oauth?';
var queryParams = ['client_id=' + appID,
'redirect_uri=' + window.location,
'response_type=token'];
var query = queryParams.join('&');
var url = path + query;
window.open(url);
} else {
var accessToken = window.location.hash.substring(1);
var path = "https://graph.facebook.com/me?";
var queryParams = [accessToken, 'callback=displayUser'];
var query = queryParams.join('&');
var url = path + query;
// use jsonp to call the graph
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
}
</script>
<p id="userName"></p>
</body>
</html>
答案 1 :(得分:0)
不要将您的应用秘密放在客户端代码中 - 出于某种原因,它被称为秘密!
(如果这是您发布的代码中的真实的应用ID和秘密,您应该立即获得新的秘密!)
您使用的是任何SDK吗?查看用于客户端登录的JavaScript SDK,或者如果您正在使用PHP并希望进行服务器端登录,请查看PHP SDK。这些SDK可以帮助您完成OAuth登录等操作并保留最基本的东西,因此您可以专注于应用程序功能...