我试图用SDK更新书签计数字段,但还没有任何成功。使用Facebook请求2.0与C#SDK
有人可以告诉我,我需要实例做类似下面的链接的东西是什么类:
http://developers.facebook.com/blog/post/464
注:
链接演示了如何设置书签数和删除。我希望能够做到与SDK一样,任何帮助,将不胜感激。
我试图用SDK更新书签计数字段,但还没有任何成功。使用Facebook请求2.0与C#SDK
有人可以告诉我,我需要实例做类似下面的链接的东西是什么类:
http://developers.facebook.com/blog/post/464
注:
链接演示了如何设置书签数和删除。我希望能够做到与SDK一样,任何帮助,将不胜感激。
要做到这一点,首先你需要让你的应用程序的访问令牌:
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];
}
几件事情需要注意上述方法:
HttpHelpers.HttpGetRequest只是使用.Net的HttpWebRequest。你可以只以及使用Web客户端,但无论你选择,你最终想使这个HTTP请求:
GET 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
现在,你有
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;
}
同样,你可以检索用户的所有应用程序的请求如下: 注意检索应用程序的access_token的方法,你可以按如下(这里我使用Facebook C#SDK)生成的应用程序要求:你有可能我不希望返回“动态”,但为了简单起见,我在此使用它。
public dynamic GetAppRequests(string fbUserId) {
var appAccessToken = GetAppAccessToken();
var client = new FacebookClient(appAccessToken);
dynamic result = client.Get(String.Format("{0}/apprequests", fbUserId));
return result;
}
我希望这会有所帮助。
访问/ apprequests假定用户已验证/安装您的应用程序,是否正确? – typeoneerror 2011-09-06 16:13:38
我不相信用户必须验证您的应用。根据Facebook的文档,你只需要你的应用程序访问令牌:http://developers.facebook.com/docs/reference/api/user/ – 2011-09-07 13:47:09
不。使用我的应用程序访问令牌进行测试,仍然会得到“参数ID中的所有用户都必须接受TOS” – typeoneerror 2011-09-07 15:49:36