我觉得我在这里提出的每一个问题都与Facebook Connect有关 - 这说明了他们的API。无论如何,这是政治,我离题..
我正在尝试从Graph API中撤回用户详细信息,以便在我的应用程序中使用(这是一个FBML外部网站 - 用于身份验证的JavaScript SDK)。
我已向用户请求以下权限:(使用常规对话框)
这样做,并允许我发布到用户的墙上,并从图谱API中获取他们的电子邮件。
但是当我对以下网址发出HTTP GET请求时:
https://graph.facebook.com/uid?access_token=oat (其中uid =我正在尝试获取详细信息的用户的用户ID,而oat =我拥有的OAuth令牌。)
JSON中的所有内容都是用户ID(我已经拥有,因为我将其放入URL中)和电子邮件。
为什么我得不到名字,姓氏,地区等等?
我使用的是错误的网址吗?我的OAuth令牌是错误的吗?
我从这里获得了OAuth令牌:
更新
看起来问题是我的OAuth令牌。
因为当我转到文档时:http://developers.facebook.com/docs/api
并为尝试检索的用户使用示例OAuth令牌,它会获取所有详细信息。
任何人都知道我的OAuth令牌调用出了什么问题?
答案 0 :(得分:2)
所以,我使用了错误的网址来进行OAuth Exchange。它必须是这样的: 的 https://graph.facebook.com/oauth/exchange_sessions?type=client_cred&client_id=myappid&client_secrete=myappsecret&sessions=userseshid 强>
我使用的网址是根据doco,上面的网站无处可寻。
我对FBC的观点是,我不再关心如何,如果它有效,那就要感谢它甚至会这样做并继续前进。
编辑:
另外,我想知道为什么Graph API调用会无缘无故地“停止”工作。
答案是我需要将用于获取 OAuth令牌的会话密钥与当前在Cookie中的会话密钥进行比较。如果它们不同,我需要获得一个新的OAuth令牌。
用于任何OAuth令牌的会话密钥是实际OAuth令牌的一部分:
aaa|bbbb|cccc
其中bbbb是会话密钥。所以我只是在做任何Graph API调用之前对它进行比较。