(400)调用Facebook C#SDK时出现错误请求

时间:2011-02-26 21:54:08

标签: asp.net webforms facebook-c#-sdk

我正在尝试在我现有的ASP.NET webforms应用程序中使用Facebook C#SDK。我的意图是允许用户通过单击Facebook链接绕过表单身份验证。该链接上的URL如下..

 <a href="https://www.facebook.com/dialog/oauth?client_id=0000000000000&redirect_uri=http://localhost:2708/fboauth.aspx&scope=offline_access">facebook</a>

Facebook处理请求,然后重定向回fboauth.aspx,后面有以下代码......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Facebook;
using System.Net;
using System.IO;

namespace StorageByMail20
{
    public partial class fboauth : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string code;
            code = Request.QueryString["code"];
            Label1.Text = code;


        string token;

        string url = "https://graph.facebook.com/oauth/access_token?client_id=000000000000000&redirect_uri=http://localhost:2708/fboauth.aspx&client_secret=000000000000000000000000&code=" + code;

        WebRequest request = WebRequest.Create(url);
        WebResponse response = request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream());
        token = reader.ReadToEnd();
        string decodedtoken = HttpUtility.UrlDecode(token);


        Facebook.FacebookAPI api = new Facebook.FacebookAPI(decodedtoken);

        JSONObject result = api.Get("/first_name");

        string name = result.Dictionary["first_name"].String;


        Label2.Text = token;


        Label3.Text = name;

    }
}

}

我在此页面上尝试执行的操作如下:

  1. 解析授权码 Facebook的回应
  2. 使用授权码获取 来自Facebook的身份验证令牌
  3. 使用。进行JSON调用 验证码可以进行检索 有关用户的信息(姓名, 电子邮件等...)
  4. 将该信息打印到页面上(最终 我会做一些更有趣的事情 与数据。现在我只是 试图获得API交互 工作正常)。
  5. 一切都按照JSON调用的方式工作。如果我注释掉那条线我很好。否则Facebook返回(400)错误请求错误。有人能找到我出错的地方吗?

    注意:此处报告的已知错误https://github.com/facebook/csharp-sdk/issues与访问令牌的编码问题有关。我我用我的UrlDecode来解决这个问题。另外,请注意我正在使用的SDK是来自Facebook的官方版(目前处于Alpha版)。还有一些由社区创建的其他C#SDK。

    以下是我在研究问题时发现的一些特别有用的文章。

    onishimura.com/2010/08/11/facebook-c-and-asp-net-mvc-code-samples-for-friends-list-activities-list-and-wall-posts /

    multitiered.wordpress.com/2010/08/05/getting-started-with-the-facebook-c-sharp-sdk /

    *我从上面的链接中删除了“http://”。显然我需要更多的声誉点才能允许我包含两个以上的链接。对不起,伙计们!

1 个答案:

答案 0 :(得分:2)

你在Github上链接的SDK不是Facebook C#SDK,它是Facebook提交的一个非常古老且非常错误的提交,然后单独留下。有一个更新,更广泛使用的项目叫做Facebook C#SDK here

您似乎正在进行大量的工作,可以通过registration pluginjavascript sdk轻松处理(这是开发Facebook Connect网站时的惯例。

如果您在服务器端进行更多Facebook调用,我强烈建议您使用链接的C#SDK。看看样本,看看你需要做多少编码。