2013-03-09 73 views
-1

我想要得到的在线好友名单,我有 An unhandled exception of type 'Facebook.FacebookApiException' occurred in Facebook.dll Additional information: (104) Requires valid signature上网的朋友C#facebook.dll

什么错在我的代码?谢谢!

var fb = new FacebookClient(); 
dynamic myInfo = fb.Get("vasya.pupkin"); 
var uId = myInfo.id; 

dynamic friends = fb.Query("SELECT uid FROM user WHERE online_presence IN ('active', 'idle')   AND uid IN (SELECT uid2 FROM friend WHERE uid1 = "+uId+")"); 

//WriteLine(friends.Count); 

,我不明白什么意思uiduid2uid1 - 必须写,因为它,或者我必须写有一些ID的(我写+的uId +在行的结尾?)。

回答

1

那么,Facebook需要一个身份验证令牌。该变量通常由这些密钥和秘密请求分配。如果没有正确的身份验证或应用程序被Facebook用户接受,它将无法正常工作。

我之所以提到令牌是因为UID通常是一个配置文件或应用程序标识符,像这样后面的数字:

UID Example

我不知道你是哪一步上,但: Facebook Key and Secret

您必须创建一个利用应用程序ID和Application Secret的应用程序。没有这个标记,你实际上无法访问Facebook。

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <appSettings> 
    <add key="EnableSqlDependency" value="true" /> 
    <add key="ApplicationId" value="<YOUR APP ID GOES HERE>" /> 
    <add key="ApplicationUrl" value="" /> 
    <add key="ApiKey" value="" /> 
    <add key="ApplicationSecret" value="<YOUR APP SECRET GOES HERE>" /> 
    <add key="ExtendedPermissions" value="offline_access" /> 
    </appSettings> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
</configuration> 

需要去你的app.config

现在的Facebook的内部:

var fb = new FacebookClient(this.AccessToken); 
dynamic result = fb.Post("me/feed", new { message = 
    "My second wall post using Facebook C# SDK" }); 

您将有机会获得。

UID基本上是您试图识别的应用程序ID或用户ID。这就是你不断收到错误的原因。您没有有效的会话来物理访问它。

希望有帮助。

+0

谢谢格雷格,但我创建的应用程序,因为你说,我可以张贴一些文字在墙上..但要获得在线朋友列表我不能..我也加(用户和朋友的权限: user_about_me user_activities friends_about_me friends_activities AND 扩展权限:user_online_presence friends_online_presence read_friendlists)。 – user2148334 2013-03-09 01:11:51

+0

@ user2148334我做了一个非常通用的教程,如果你使用Google,他们会进入更多细节。我只是简单地找出你的问题,并以失败告终。 – Greg 2013-03-09 01:30:07

+0

你可以给我链接到你的通用教程,或者我可以找到它吗? – user2148334 2013-03-09 01:38:03