facebook - 将 Facebook Requests 2.0 与 C# SDK 结合使用

标签 facebook facebook-c#-sdk

我正在尝试使用 SDK 更新书签计数字段,但尚未成功。

有人可以告诉我需要实例化哪些类来执行类似于以下链接的操作:

http://developers.facebook.com/blog/post/464

注意:

该链接演示了如何设置书签计数和删除它。我希望能够对 SDK 执行相同的操作,如有任何帮助,我们将不胜感激。

最佳答案

为此,首先您需要获取应用的访问 token :

    private string GetAppAccessToken() {

        var fbSettings = FacebookWebContext.Current.Settings;

        var accessTokenUrl = String.Format("{0}oauth/access_token?client_id={1}&client_secret={2}&grant_type=client_credentials",
            "https://graph.facebook.com/", fbSettings.AppId, fbSettings.AppSecret);

        // the response is in the form: access_token=foo
        var accessTokenKeyValue = HttpHelpers.HttpGetRequest(accessTokenUrl);
        return accessTokenKeyValue.Split('=')[1];
    }

关于上述方法需要注意的几点:

  • 我使用 .Net HttpWebRequest 而不是 Facebook C# SDK 来获取应用程序 access_token,因为(从版本 5.011 RC1 开始)SDK 抛出 SerializationException。 SDK 似乎期望来自 Facebook 的 JSON 响应,但 Facebook 以以下形式返回访问 token :access_token=some_value(这不是有效的 JSON)。
  • HttpHelpers.HttpGetRequest 只是使用 .Net 的 HttpWebRequest。您也可以使用 WebClient,但无论您选择什么,您最终都希望发出此 http 请求:

    获取 https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials HTTP/1.1 主办方:graph.facebook.com

现在您已经有了获取应用程序 access_token 的方法,您可以按如下方式生成应用程序请求(这里我使用 Facebook C# SDK):

public string GenerateAppRequest(string fbUserId) {
    var appAccessToken = GetAppAccessToken();
    var client = new FacebookClient(appAccessToken);
    dynamic parameters = new ExpandoObject();
    parameters.message = "Test: Action is required";
    parameters.data = "Custom Data Here";

    string id = client.Post(String.Format("{0}/apprequests", fbUserId), parameters);
    return id;
}

同样,您可以按如下方式检索用户的所有应用请求: 注意:您可能不想返回“动态”,但为了简单起见,我在这里使用它。

   public dynamic GetAppRequests(string fbUserId) {
        var appAccessToken = GetAppAccessToken();
        var client = new FacebookClient(appAccessToken);

        dynamic result = client.Get(String.Format("{0}/apprequests", fbUserId));
        return result;    
    }

希望对您有所帮助。

关于facebook - 将 Facebook Requests 2.0 与 C# SDK 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931953/

相关文章:

facebook-c#-sdk - (facebook C# SDK) 任何避免在 "The remote server returned an error: NotFound."时抛出异常的方法

c# - client.get ("me/statuses") 使用 C# Facebook SDK 5.0.3 返回空的 "data"数组

facebook - 尝试使用 Facebook JS SDK 从 Facebook 注销时,getLoginStatus 返回未知状态

ios - 向 friend 发送应用邀请

iphone - Facebook iOS SDK 3.0 教程中的 SIGABRT 错误

javascript - Facebook 和 Twitter 通过 iframe 共享

javascript - 如何制作类似Facebook的标题提醒效果?

Facebook 查询语言。让所有用户住在加利福尼亚

c# - Facebook,构建手动登录流程 - C# SDK

android - 使用 Android 应用程序和网络服务处理 Facebook token 过期