使用ads_read生成Facebook访问令牌

时间:2017-02-15 14:53:44

标签: php facebook facebook-ads-api

我希望使用Facebook广告API(https://github.com/facebook/facebook-php-ads-sdk)获取有关广告系列和广告的Facebook统计信息。

我创建了一个应用程序(带有ID和密码),添加了Marketing API,现在我可以使用<canvas id="bar" height="100" width="100" class="chart chart-bar" chart-data="dataChart" chart-labels="labels" chart-click="onClick" chart-options="options"> </canvas> 权限生成访问令牌,该权限有效期为2个月。

有没有办法可以避免每隔一个月手动点击该按钮的过程?

我试过这个电话:

ads_read

这为我提供了一个看起来像这样的访问令牌:$tokenUrl = 'https://graph.facebook.com/v2.8/oauth/access_token?client_id=' . $app_id . '&client_secret=' . $app_secret . '&grant_type=client_credentials&scope=ads_read';并且它不起作用(不支持的获取请求)。

手动生成的令牌长度为164个字符。

2 个答案:

答案 0 :(得分:1)

我做的是:

1.Call

https://www.facebook.com/v2.8/dialog/oauth?client_id=
<APP_ID>&redirect_uri=<REDIRECT_URI>&scope=ads_read

然后点击&#34;允许&#34;后,我会被重定向到

<REDIRECT_URI>/?code=<AUTHORIZED_CODE>

2.交换访问令牌的授权代码

https://graph.facebook.com/v2.8/oauth/access_token?client_id=<APP_ID>&redirect_uri=<REDIRECT_URI>&client_secret=<CLIENT_SECRET>&code=<AUTHORIZED_CODE>

你的重定向uri应以/例如结尾http://localhost:3000/

我通过在浏览器中手动复制和粘贴来尝试此操作,但自动化请求/响应应该会给出相同的结果。

参考:https://developers.facebook.com/docs/marketing-api/access

答案 1 :(得分:-1)

您可以通过服务器的请求将短生命令牌用于长期生活令牌(即使没有过期)

GET https://graph.facebook.com/oauth/access_token?  
   grant_type=fb_exchange_token&         
   client_id={app-id}&
   client_secret={app-secret}&
   fb_exchange_token={short-lived-token} 

请注意,即使设置为永不过期的令牌也可能被用户无效,例如,如果他更改了FB密码或完全删除了您的应用。

有关详细信息,请参阅the docs