网上好友C#facebook.dll

时间:2013-03-09 00:45:28

标签: c# facebook facebook-fql

我想得到在线好友列表,我有 An unhandled exception of type 'Facebook.FacebookApiException' occurred in Facebook.dll Additional information: (104) Requires valid signature

我的代码有什么问题? THX!

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 + in行尾?)。

2 个答案:

答案 0 :(得分:1)

嗯,Facebook需要身份验证令牌。该变量通常由Key和Secret请求分配。如果没有Facebook用户接受正确的身份验证或应用程序,它将无法正常工作。

我提到令牌的原因是因为UID通常是配置文件或应用程序标识符之后的数字,如下所示:

UID Example

我不确定你走了哪一步但是: Facebook Key and Secret

您必须创建一个使用应用程序ID和应用程序密钥的应用程序。没有这个令牌,你实际上无法访问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。这就是你不断收到错误的原因。您没有有效的会话来实际访问它。

希望这有帮助。

答案 1 :(得分:0)

在查看FQL文档并进一步搜索StackOverflow之后,我建议你看看:How to get list of online friends using FQL with facebook API?

您可能还需要查看此处:Facebook online friend

我建议您下次花一点时间浏览StackOverflow网站,因为需要花费10秒时间和谷歌查询“facebook api get online friends”才能找到我提供的答案。