-1

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

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

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);

而且我不明白uid, uid2, uid1- 的含义是什么,它必须写成它,或者我必须在那里写一些 id(因为我在行尾写 +uId+ ?)。

4

2 回答 2

1

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

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

UID 示例

我不确定你在哪一步,但是: Facebook 密钥和秘密

您必须创建一个使用应用程序 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。这就是为什么您不断收到该错误的原因。您没有有效的会话来物理访问它。

希望这会有所帮助。

于 2013-03-09T00:58:28.837 回答
0

在查看了 FQL 文档并进一步搜索 StackOverflow 之后,我建议您看一下:如何使用 FQL 和 facebook API 获取在线好友列表?

您可能还需要看看这里:Facebook 在线朋友

我建议你下次多花点时间浏览 StackOverflow 网站,因为它花了 10 秒时间和谷歌查询“facebook api get online friends”来找到我提供的答案。

于 2013-03-09T01:24:45.710 回答