有没有办法检查用户是否在服务器端授予了给定的权限?

时间:2011-08-15 08:29:45

标签: asp.net facebook facebook-graph-api codeplex

我需要检查用户是否在服务器端授予了给定的权限(例如:publish_stream)。它接缝为客户端存在的解决方案,但我需要的是服务器端。

请问好吗?

3 个答案:

答案 0 :(得分:1)

您需要服务器端API,例如Facebook Java APIrestFB。这些是java API(我已经使用过),还有许多其他语言用于不同的语言。官方文件显示在Facebook developer portal

使用这些API,您将能够做的不仅仅是在服务器端验证用户。按照指向不同页面的链接,您将找到可以立即开始使用的片段!

修改

由于您使用的是ASP,因此您需要一个ASP .NET API。这是从Google搜索http://facebooksdk.codeplex.com/找到的第一个结果。

使用此API和MVC架构,您可以注释任何包含需要[CanvasAuthorize(Perms = "publish_stream")]权限的代码的控制器操作,以及当用户调用他们需要提供权限的操作时。

我无法提供更多详细信息,因为我从未使用过此API,但请深入查看tutorial on building a sample application

答案 1 :(得分:1)

您可以对此网址https://graph.facebook.com/me/permissions进行图谱API调用,包括用户访问令牌。您将获得具有用户权限的结果。有关详细信息,请参阅https://developers.facebook.com/docs/reference/api/user/

答案 2 :(得分:0)

解决方案:

步骤1.首先,您必须进行查询: 查询类似于:SELECT {0} FROM permissions WHERE uid = {1}

{0}是以逗号分隔的权限。例如:publish_stream,offline_access

{1}是userId

步骤2.然后将此查询发送到给定的URL:

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
  }

] }