图表api发布得分结果为403禁止,但仅限某些用户?

时间:2012-06-03 20:13:01

标签: wcf facebook-graph-api

所以我使用我的帐户成功将我的应用程序发布到Facebook的分数。但是当我去实施排行榜时,我尝试使用我的妻子帐户。当它尝试提交她的分数时,它返回“远程服务器返回错误:(403)禁止”。验证我的工作仍然正常。可以反复复制。

这是WCF服务。

<WebGet()>
<OperationContract()> _
Public Function postMyScore(id, score) As String
    'post user score using user's id, score and app's access_token
    Dim URL As String = "https://graph.facebook.com/" + id + "/scores"
    Dim webProxy As New System.Net.WebProxy(proxyURLremoved, True)
    Dim appToken = getAuthCode()

    Using client As New Net.WebClient
        client.Proxy = webProxy
        Dim reqparm As New Specialized.NameValueCollection
        reqparm.Add("score", score)
        reqparm.Add("access_token", appToken)
        Dim responsebytes = client.UploadValues(URL, "POST", reqparm)
        Dim responsebody = (New Text.UTF8Encoding).GetString(responsebytes)
        Return responsebody
    End Using

End Function

再次,当我以我的身份登录时,上述情况有效,但是当我使用我妻子的帐户登录时却没有

当我尝试使用Graph API Explorer复制帖子时,我收到以下错误(可能是出于安全考虑而设计)

{
  "error": {
    "message": "(#240) Requires a valid user is specified (either via the session or via the API parameter for specifying the user.", 
    "type": "OAuthException", 
    "code": 240
  }
}

1 个答案:

答案 0 :(得分:0)

我将OAuth对话框的App Center中的权限部分与登录按钮的data-perms属性混淆。它们不是同一个;)

现在我的登录按钮看起来像这样,一切正常。

    <div id="fbLogin"><fb:login-button data-perms="publish_actions,friends_games_activity,user_games_activity" show-faces="false" width="200" max-rows="1"></fb:login-button></div>

显然,应用所有者默认拥有所有权限。