(OAuthException)(#15)必须使用app secret signed session调用您调用的方法

时间:2011-05-13 09:43:55

标签: facebook api asp.net-mvc-3 facebook-c#-sdk

我正在尝试将测试用户添加到我的Facebook应用程序中,以便我可以更好地测试“请求”对话框并检查是否可以检索跟踪信息。但我一直在这个问题的标题中得到错误。这是我的代码:

    [CanvasAuthorize]
    public ActionResult Add()
    {
        var fb = new FacebookWebClient(FacebookWebContext.Current);
        dynamic result = fb.Post(string.Format("{0}/accounts/test-users", FacebookWebContext.Current.Settings.AppId),
            new { installed = false});
        return Content(result.ToString());
    }

奇怪的是,在调试时,我检查了当前的上下文,似乎一切都很好。所有属性都在那里(包括App Secret)并且没有null。为什么会这样?

更新: C# equivalent of file_get_contents (PHP)

4 个答案:

答案 0 :(得分:2)

我猜错误和旧的命名有点误导,你需要的是application access token。它在Test Users documentation中提到:

  

您可以创建关联的测试用户   使用图表的特定应用程序   API与您的应用访问令牌。

对于PHP用户,我编写了一个关于如何获取此访问令牌here的教程。

答案 1 :(得分:0)

您需要一个有效的访问令牌才能包含在您的URI中,例如“& access_token = APP_ACCESS_TOKEN”。试试Facebook的Access Token Tool

答案 2 :(得分:0)

我注意到你没有分享你的解决方案,重要的是分享以防其他人有同样的问题。

以下是我以编程方式获取App客户端的方式:

var fbAppClient = FacebookWebClient(AppId, AppSecret);

答案 3 :(得分:0)

虽然参加派对的时间较晚,但我认为自从我遇到完全相同的问题后,我会在原始代码中添加实际的修补程序。

在Kassem上面的代码中,在第4行,以下内容:

var fb = new FacebookWebClient(FacebookWebContext.Current);

是导致标题错误的原因。用以下代替:

var fb = new FacebookWebClient(FacebookApplication.Current.AppId, FacebookApplication.Current.AppSecret);

解决了这个问题。