替换旧的GetAppUsers呼叫以查看使用我的应用程序的用户的朋友?

Ale*_*lex 10 rest facebook facebook-c#-sdk

旧的REST API中的一个非常有用的调用是Friends.getAppUsers.此调用将返回正在使用应用程序的所有朋友.遗憾的是,这不在Open Graph API中.关于它有一个很好的Stack Overflow帖子,Facebook'Friends.getAppUsers'使用Graph API.

但是,可以使用Graph API进行FQL调用,如图API API资源管理器中所示.

我想也许我可以使用C#SDK进行以下调用:

fb.GetAsync("fql/?q=SELECT uid,username, is_app_user FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user=1");
Run Code Online (Sandbox Code Playgroud)

但是,这返回了一个错误.有没有办法解决GetAppUsers使用现有C#SDK 缺少呼叫的问题?

Igy*_*Igy 30

对users.isAppUser的替换API调用是一个简单的调用./me/?fields=installed 这也适用于用户的朋友,因此通过扩展它可以替代friends.getAppUsers.

我尝试使用App Access Token和常规用户访问令牌.进行API调用/{user id}/friends?fields=installed- 返回如下所示:

{
  "data": [
    {
      "id": "{FRIEND_UID_1}"
    }, 
    {
      "id": "{FRIEND_UID_2}"
    }, 
    // etc...
    {
      "installed": true, 
      "id": "{FRIEND_UID_X}"
     }
Run Code Online (Sandbox Code Playgroud)

// SNIP

您可以使用存在或不存在installed:true来确定用户的哪些朋友使用您的应用.

如果由于某种原因这对你不起作用; 您是否已经拥有自己数据库中应用用户的uid列表?您可以只检索用户的完整好友列表,并将其与您自己使用应用的用户记录进行比较.