我需要检查用户是否在服务器端授予了给定的权限(例如:publish_stream)。它接缝为客户端存在的解决方案,但我需要的是服务器端。
请问好吗?
答案 0 :(得分:1)
您需要服务器端API,例如Facebook Java API或restFB。这些是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
}
] }