facebook图表sdk 2.5只返回id和名称

时间:2016-02-04 16:51:37

标签: facebook facebook-graph-api

我已经看过其他堆叠问题,但他们的解决方案似乎根本没有帮助我。

当我有一个使用

从oauth登录返回的外部访问令牌时,我正在尝试获取配置文件信息
void handle_sigalarm(int sig)
{
  /* do nothing */
}


  ...

  sigaction(SIGALRM , &(struct sigaction){handle_sigalarm}); /* Setup handler for 
     alarm signal to override the default behaviour which would be to 
     end the process . */

  alarm(3); /* Arranges for a SIGALRM signal to be delivered to the calling
   process in 3 seconds. */

  {
    int accepted_socket = accept(...);
    int errno_save = errno;
    alarm(0); /* Cancel any pending alarm. */
    if (-1 == accepted_socket)
    {
      if (EINTR == errno_save)
      {
        fprintf(stderr, "accept() timed out\n");
      }

      /* handling other errors here. */
    }

    ...

我有返回的访问令牌,现在想请求获取一些用户配置文件数据。

在帖子中,我尝试过以下GET

Microsoft.Owin.Security.Facebook

我通过调用

获得了用户ID
https://graph.facebook.com/v2.5/{user-id}?fields=about,name,email&access_token={token}

(我觉得这是一个不必要的步骤)。

我也尝试了以下

https://graph.facebook.com/v2.5/me?access_token={token}

在每个实例中,我只返回返回的id和name字段。但是,我注意到我是否会这样做;

https://graph.facebook.com/v2.5/me?fields=about,name,email&access_token={token}

只返回id(我假设我没有特别要求提供名称)。

为什么我没有退回数据呢?

已更新

如果我打电话给以下终点;

https://graph.facebook.com/v2.5/me?fields=email&access_token={token}

我收到以下数据;

https://graph.facebook.com/v2.5/{user-id}/permissions?access_token={token}

所以我假设我需要申请该应用的权限?

1 个答案:

答案 0 :(得分:0)

好的,Facebook开发者页面上的ASP.NET权限请求不是很清楚。问题是信息请求在

中设置
FacebookAuthenticationOptions 

在应用程序启动期间设置。此时通过添加到范围来请求其他权限;

var options = new FacebookAuthenticationOptions
{
    AppId = "Your App ID",
    AppSecret = "Your App Secret",
};
options.Scope.Add("user_friends");
options.Scope.Add("email");

此外,要在请求期间注意,默认情况下不会发送字段,必须请求。

可在此处找到可用权限的链接;

https://developers.facebook.com/docs/facebook-login/permissions