获取 Access_token 以读取 Page Insights
Posted
技术标签:
【中文标题】获取 Access_token 以读取 Page Insights【英文标题】:Obtaining an Access_token to read Page Insights 【发布时间】:2011-11-18 01:09:02 【问题描述】:我一直致力于使用 python 来访问 Facebook 洞察信息。除了我开发的应用程序的应用程序见解之外,我还能够获得公共信息(例如,可口可乐页面上的“喜欢”)。
因为我是页面和应用程序的管理员和开发人员,所以当我访问 facebook.com/insights 时,我会看到一个页面部分和一个应用部分。我希望能够从图形 api 中获得两者的见解并将它们存储在我的个人数据库中。获得应用洞察力并不难。我在创建应用程序时获取了我的 app_id 和 app_secret,然后在此页面 http://developers.facebook.com/docs/authentication/ 上按照应用程序登录下的流程进行操作。这给了我一个应用 access_token,我可以用它来获取应用洞察。
在尝试对页面执行相同操作时,我遇到了更多麻烦。正如许多以前的帖子所提到的,大多数 facebook 文档都与 facebook 应用程序有关,该应用程序获取 access_token 以管理或读取页面中的见解。我知道这对于与用户页面交互的应用程序很有用。但是,我的直觉告诉我,我应该能够通过 read_insights 为我作为管理员的页面获取访问令牌,而无需通过外部应用程序。
我能够阅读我的页面见解的唯一方法是使用 Graph Api Explorer。我使用 Explorer 获得了一个 access_token(通过 access_token 按钮,允许 Explorer 访问我的个人数据并请求 manage_pages 和 read_insight 扩展权限)。然后我按照我在上面发布的 /docs/authentication/ 页面上的页面登录下的说明获取我管理的 facebook 页面的 access_token。然后我终于可以运行https://graph.facebook.com/PAGE_ID/insights?access_token=RETRIEVED_TOKEN。然而,这是一种非常麻烦的查找 access_token 的方法。有没有办法让这个令牌不那么麻烦?谢谢你的帮助。我已经为此苦苦挣扎了一段时间。
我还包含了用于获取我的应用的访问令牌的代码。
def get_access_token():
args = dict(client_id=FACEBOOK_APP_ID, client_secret=FACEBOOK_APP_SECRET, grant_type="client_credentials" )
url = "https://graph.facebook.com/oauth/access_token?" + urllib.urlencode(args)
response = urlparse.parse_qs(urllib.urlopen(url).read())
access_token = response['access_token'][0]
return access_token
【问题讨论】:
【参考方案1】:为什么不使用经典方式:
创建一个应用程序并使用 facebook(例如 JS SDK)登录到它,具有 offline_access 和 read_insights 权限。 offline_access 将为您提供一个永久的 access_token,您可以使用它随时访问见解。 JS SDK(方法 FB.login)将返回一个对象,其中包含您需要的 access_token。【讨论】:
以上是关于获取 Access_token 以读取 Page Insights的主要内容,如果未能解决你的问题,请参考以下文章
微信公众平台IP白名单开发设置获取access_token成功之后怎么进行下一步