【问题标题】:An access token is required to request this resource FQL issue请求此资源 FQL 问题需要访问令牌
【发布时间】:2012-03-12 08:16:13
【问题描述】:

我有一个执行查询的命令行应用程序。这是代码。

问题是它接收到“abc...|xyz...”形式的访问令牌。有 没有会话部分。但是返回的令牌对于执行我的查询没有用 为我的页面选择见解。救命!!

       const string permissions  = "manage_pages,read_insights,offline_access";

        dynamic oauthClient = new FacebookOAuthClient() ;
        oauthClient.AppId = username ;
        oauthClient.AppSecret = password ;

        dynamic parameters = new ExpandoObject() ;
        parameters.scope = permissions ;
        parameters.response_type = "token" ;
        // parameters.grant_type = "client_credentials" ;

        dynamic result = oauthClient.GetApplicationAccessToken(parameters);
        string token =  result.access_token ;  
       // token comes back as "abc...|xyz..." 

        var fb = new FacebookClient(token); 
        string query = " select metric, value  " + 
                       " from insights  " + 
                       " where object_id = MY_PAGE and " + 
                       "       metric in ( 'page_impressions' , 'page_stories') and " + 
                       "       end_time >= end_time_date('2012-02-21') and " + 
                       "       end_time <= end_time_date('2012-02-11') and " + 
                       "       period = period('day') " ; 

        dynamic result2 = fb.Query(query) ;  // Exception generated on this line.

        return result2 ;

有什么想法吗?

【问题讨论】:

  • 顺便说一句 - 结束时间的东西是剪切和粘贴错误。结束时间应在 2012-02-11 和 2012-02-21 之间。令牌问题是我现在的问题。

标签: facebook-graph-api facebook-c#-sdk facebook-fql access-token facebook-insights


【解决方案1】:

您收到的错误来自 Facebook,它只是说您没有有效的令牌来发出请求。您必须使用 OAuth 请求用户访问令牌。获得有效的访问令牌后,您可以使用以下代码提出请求:

var fb = new FacebookClient("valid_user_access_token"); 
string query = "YOUR FQL QUERY HERE";
dynamic result = fb.Query(query);

要了解如何获取有效的访问令牌,请阅读此处的 Facebook 文档:https://developers.facebook.com/docs/authentication/

【讨论】:

  • 两个问题:那么它是用户访问令牌还是页面访问令牌?此外,这应该是一个定期提取指标的批处理应用程序,因此我们希望完全消除所有用户登录。有没有办法在 API 中有 FacebookOAuthClient().GetUserAccessToken(parameters) 方法或 FacebookOAuthClient().GetPageAccessToken(parameters) 方法?
  • (它会定期提取页面指标)。因此,App auth token 似乎不足。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多