Kev*_*Kev 7 .net c# wpf facebook
我只是直接潜入并给你一些背景,我想尝试做什么,我尝试过什么,以及我的方式遇到的障碍.所以这里..
我的目标
从桌面应用程序发布到Facebook个人资料或墙壁.
桌面应用程序将由拥有自己的Facebook帐户的个人用户使用.
目的是为每个用户创建自己的Facebook应用程序,并获取应用程序ID和应用程序密码.
然后在桌面应用程序中使用app id和app secret(在数据库或配置中保存)允许桌面应用程序的用户发布到他们的个人资料,而无需输入他们的电子邮件地址和密码来登录
总而言之,每个Facebook帐户1个facebook应用程序.
应用程序设置将保存在每个用户桌面应用程序中,无需登录即可通过自己的Facebook应用程序发布到自己的Facebook
这里的主要重点是用户不必通过窗口或浏览器手动登录.
我创建了我的Facebook应用程序并将其设置为实时状态..我还添加了所有可能的权限和扩展权限的设置(在Facebook内)只是为了确保我没有遗漏任何东西.所以我确实有我的AppID和App秘密..我也有我的客户端令牌,它说用来代替'auth方法'的app秘密.我用它来获取我的访问令牌.我尝试了应用程序秘密,但它没有返回访问令牌
我的尝试:
C#FACEBOOK SDK
所以,我开始并且仍在尝试使用c#sdk
我可以检索我的访问令牌但无法发布.
无论我尝试什么,我总是低于错误......这些只是我尝试过的众多代码示例中的两个.
(OAuthException - #2500)必须使用活动访问令牌来查询有关当前用户的信息.
dynamic r = fb.Post("me/feed", new { message = "My seconds wall post using Facebook C# SDK" });
(OAuthException - #190)客户端令牌不能用于此API
dynamic r = fb.Post("kevin.maguire.965/feed", new { message = "My second wall post using Facebook C# SDK" });
我从以下链接中读到以下摘录,其中说明我的访问令牌是一个应用令牌,我需要一个用户或页面的访问令牌? 需要帮助OAuthException代码2500 错误2500意味着您没有访问令牌或应用程序访问令牌但是正在尝试访问/ me/ - '我'是"当前用户或页面ID"的占位符,因此如果没有用户或页面的访问令牌
所以,我试图使用以下答案获取用户ID(Facebook C#SDK获取当前用户)
var fb = new FacebookClient("access_token");
dynamic result = fb.Get("me", new [] { fields = "id" });
var userId = result.id;
Run Code Online (Sandbox Code Playgroud)
我得到了访问令牌,我假设它是应用程序令牌而不是用户令牌
dynamic result = fb.Get("oauth/access_token", new
{
client_id = this.ApplicationId,
client_secret = this.AppSecret,
grant_type = "client_credentials"
});
fb.AccessToken = result.access_token;
Run Code Online (Sandbox Code Playgroud)
所以我现在不知道如何发布到我的个人资料
我可以使用twitter实现上述功能,我可以使用秘密,令牌,ID等...他们提供并且我可以成功地从桌面应用程序发布到我的Twitter帐户而无需登录我的Twitter帐户.
另一位用户也发现在没有任何实际问题的情况下发布到Twitter非常容易.(facebook c#sdk入门)
他似乎也取得了成功,我没有使用相同的代码 - 这段代码是在2012年6月使用的,所以从那以后可能会有一些突破性的变化.
我收到了消息:(OAuthException - #2500)当我使用sdk时,必须使用活动访问令牌来查询有关当前用户的信息.当我尝试使用Web请求获取访问令牌,然后将该令牌传递给sdk对象以创建facebookclient时,我收到此消息(OAuthException - #190)无效的OAuth访问令牌签名.
WebRequest request = WebRequest.Create("https://graph.facebook.com/oauth/access_token? grant_type=client_credentials&client_id=999999999999999&client_secret=edefefr8e09r8e08r080r8er0e");
request.Method = "POST";
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Get the request stream.
Stream dataStream = request.GetRequestStream();
// Close the Stream object.
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string accesstoken = reader.ReadToEnd();
MessageBox.Show("accesstoken")
// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
var fb = new FacebookClient(accesstoken);
dynamic parameters = new ExpandoObject();
parameters.message = "test";
dynamic result = fb.Post("me/feed", parameters);
var id = result.id;
Run Code Online (Sandbox Code Playgroud)
显然,在上面的代码中,我将id和secret更改为虚拟值.
所以基本上人们...上面的链接和上面的代码只是我在过去几天里尝试过的一小部分......我基本上已经用尽了选项,我在这里遗漏了一些可以避免我的注意力容易..或者可能不是:)我不知道.
如果任何人甚至有一个简单的窗体,或wpf窗口应用程序示例使用c#sdk或使用restsharp或只使用带有'POST'方法的WebRequest对象,那么我将永远是伟大的.
只是再次迭代它是桌面应用程序而不是ASP.net.
非常感谢大家的关注和时间.




| 归档时间: |
|
| 查看次数: |
13500 次 |
| 最近记录: |