【问题标题】:Facebook C# SDK 4.2.1 posting on wall problemFacebook C# SDK 4.2.1 在墙上发帖问题
【发布时间】:2011-06-18 02:10:45
【问题描述】:

您好,当我尝试在用户墙上发布内容时遇到问题。这是我的代码

 protected void Page_Load(object sender, EventArgs e)
{       
        app = new FacebookApp();
        auth = new CanvasAuthorizer(app);
    auth.Perms += "user_about_me,publish_stream,create_event,offline_access";
    if (auth.IsAuthorized())
    {
        Response.Write("authorized    " + app.Session.UserId.ToString()+"  "+app.Session.AccessToken + "<br/>");
        dynamic rez = app.Get("me");
        Response.Write(rez.first_name + "  "+rez.last_name);
    }
    else
        Response.Write("not authorized    ");      
}
protected void btnPost_Click(object sender, EventArgs e)
{
    dynamic parameters = new ExpandoObject();
    parameters.message = "Check out this funny article";
    parameters.link = "http://www.example.com/article.html";
    parameters.picture = "http://www.example.com/article-thumbnail.jpg";
    parameters.name = "Article Title";
    parameters.caption = "Caption for the link";
    parameters.description = "Longer description of the link";
    parameters.actions = new
    {
        name = "View on Zombo",
        link = "http://www.zombo.com",
    };
    parameters.privacy = new
    {
        value = "ALL_FRIENDS",
    };
    parameters.targeting = new
    {
        countries = "US",
        regions = "6,53",
        locales = "6",
    };
    dynamic result = app.Api("/me/feed",parameters);
}

当我尝试发帖时,我得到:

(OAuthException) 必须使用活动访问令牌来查询有关当前用户的信息。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详情:Facebook.FacebookOAuthException:(OAuthException) 必须使用活动访问令牌来查询有关当前用户的信息。

附:

dynamic rez = app.Get("me");
        Response.Write(rez.first_name + "  "+rez.last_name); 

工作没有问题!

提前致谢。

【问题讨论】:

    标签: facebook facebook-c#-sdk oauth-2.0


    【解决方案1】:

    那是因为你没有给它访问令牌试试把

    FacebookApp app = new FacebookApp("my_access_token");
    

    在发布按钮事件的顶部并替换

    dynamic result = app.Api("/me/feed",parameters);
    

    dynamic result = app.Post("me/feed", parameters);
    

    【讨论】:

    • 应该是这样:FacebookApp app = new FacebookApp("my_access_token");或者代替“my_access_token”应该是某种作为访问令牌的字符串,例如“123csdre23324324....”?
    • 从解决方案资源管理器添加设置文件,该文件将为您提供可以包含一些值的文件声明字符串类型字段 id 然后您所要做的就是 FacebookApp app = new FacebookApp(settingFile.Default.id );
    • 设置文件使我们可以从代码中的一个或多个位置更新的数据保持一致
    • 你也可以按照你说的直接放你的Application Token
    • 您能告诉我如何获取访问令牌吗?
    猜你喜欢
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多