【发布时间】:2011-08-15 08:29:44
【问题描述】:
我需要检查用户是否已在服务器端授予给定权限(例如:publish_stream)。它为客户端存在的解决方案接缝,但我需要的是服务器端。
有什么想法吗?
【问题讨论】:
标签: asp.net facebook facebook-graph-api codeplex
我需要检查用户是否已在服务器端授予给定权限(例如:publish_stream)。它为客户端存在的解决方案接缝,但我需要的是服务器端。
有什么想法吗?
【问题讨论】:
标签: asp.net facebook facebook-graph-api codeplex
您需要像 Facebook Java API 或 restFB 这样的服务器端 API。这些是 java API(我已经使用过),还有许多其他用于不同语言的 API。官方显示在Facebook developer portal。
使用这些 API,您将能够做的不仅仅是在服务器端对用户进行身份验证。点击不同页面的链接,您会发现 sn-ps 可以让您立即开始!
由于您使用的是 ASP,因此您需要一个 ASP .NET API。这是从谷歌搜索http://facebooksdk.codeplex.com/找到的第一个结果。
使用此 API 和 MVC 架构,您可以注释任何包含需要权限的代码的控制器操作,例如 [CanvasAuthorize(Perms = "publish_stream")],并且当用户调用该操作时,他们需要提供权限。
我无法提供更多详细信息,因为我从未使用过此 API,但请仔细查看此内容 tutorial on building a sample application。
【讨论】:
您可以对此 URL https://graph.facebook.com/me/permissions 进行图形 API 调用,包括用户访问令牌。您将获得具有用户权限的结果。更多详情见https://developers.facebook.com/docs/reference/api/user/
【讨论】:
解决方案:
第 1 步。首先,您必须进行查询:
查询如:SELECT {0} FROM permissions WHERE uid = {1}
{0} 是逗号分隔的权限。例如:publish_stream,offline_access
{1} 是用户 ID
第 2 步。然后将此查询发送到给定的 url:
网址:https://api.facebook.com/method/fql.query?query={0}&format=JSON&access_token={1}
{0} 是我们在步骤 1 中进行的查询
{1} 是用户的 AccessToken
示例结果:[{"publish_stream":1,"offline_access":0}]
更新另一种使用 Graph Api 的方式:
https://graph.facebook.com/me/permissions?access_token={0}
{0} 是用户的 AccessToken
样本结果:
{
“数据”:[
{
"installed": 1,
"status_update": 1,
"photo_upload": 1,
"video_upload": 1,
"offline_access": 1,
"create_note": 1,
"share_item": 1,
"bookmarked": 1,
"publish_stream": 1
}
] }
【讨论】: