Mos*_*she 5 cocoa facebook-graph-api facebook-login
我正在为OS X构建一个小的Facebook登录库.这不是因为没有SDK,而是因为我想要一些可以封装登录过程的Cocoa原生的东西.我成功地从Facebook登录URL请求了一个访问令牌.我使用这种字符串格式来执行登录:
https://www.facebook.com/dialog/oauth?client_id=%@&redirect_uri=%@&response_type=token
Run Code Online (Sandbox Code Playgroud)
对于redirect_uri我https://www.facebook.com/connect/login_success.html根据Facebook文档传递的字段.我接受任何响应并解析URL.我会得到一个令牌或失败.令牌好像回来了.问题出在下一步.
收到我的令牌后,我立即尝试验证它.我使用"debug"端点,如下所示:
https://graph.facebook.com/debug_token?input_token=%@&access_token=%@
Run Code Online (Sandbox Code Playgroud)
我将新令牌传递给input_token它,这就是它变得粘稠的地方.我已经尝试传递我的客户端令牌,但这会导致以下错误:
该操作无法完成.(无效的OAuth访问令牌.错误190.)`
如果我通过我app ID | app secret,我会得到一个不同的错误:
该操作无法完成.((#100)您必须提供应用程序访问令牌或用户访问令牌,该令牌是应用程序错误100的所有者或开发者.)
我不确定这里发生了什么,或者该做什么.谁能指出我正确的方向?
Max*_*Max 13
该调试 API是如果你想要做的事情为应用程序,而不是用户.一旦用户登录,您需要的只是他们的访问令牌以获取有关他们的信息,阅读他们的信息,发布内容(当然假设您有一个访问令牌,其权限可以执行您要执行的操作).因此,在您的情况下,既然您拥有访问令牌,请继续尝试获取有关用户的信息
https://graph.facebook.com/me?access_token=%@
Run Code Online (Sandbox Code Playgroud)
你会得到这样的东西:
{
"id": "542440888",
"name": "Max Rabin",
"first_name": "Max",
"last_name": "Rabin",
"link": "https://www.facebook.com/MY_USER_NAME",
"username": "MY_USER_NAME",
"birthday": "11/22/YEAR",
"hometown": {
"id": "110970792260960",
"name": "Los Angeles, California"
},
"location": {
"id": "110970792260960",
"name": "Los Angeles, California"
},
"bio": "There are 10 kinds of people in this world.\r\n01: Those who know trinary\r\n02: Those who don't\r\n10: Those who confuse it with binary",
"gender": "male",
"email": "MY_EMAIL",
"timezone": 2,
"locale": "en_US",
"languages": [
{
"id": "106059522759137",
"name": "English"
}
],
"verified": true,
"updated_time": "2013-10-21T10:02:49+0000"
}
Run Code Online (Sandbox Code Playgroud)