我想创建一个在服务器后台运行的应用程序,并定期将Facebook上的广告信息同步到我服务器上的数据库(比如每小时一次)。
该应用程序根本没有用户交互,这意味着每次需要进行身份验证时,都没有用户点击“我使用我的信息可以使用我的信息”。
我在他们的文档中找到了这个:https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens
问题是,它似乎不起作用。我可以生成一个access_token就好了。示例:
$ curl 'https://graph.facebook.com/oauth/access_token?client_id=123456789012345&client_secret=s3cr3tt0k3n12a4zz1345a6fgx5aa3f6&grant_type=client_credentials'
access_token=123456789012345|SomeRandomLettersAndNumbers
然而,当我去使用它时,我只是得到权限被拒绝错误:
$ curl 'https://graph.facebook.com/v2.6/me/adaccounts?access_token=123456789012345|SomeRandomLettersAndNumbers'
{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500,"fbtrace_id":"DQ8ysX2mHCu"}}
当我通过此处的资源管理器工具发出请求时,会发生同样的事情:https://developers.facebook.com/tools/explorer/
注意:
我不确定是否必须在某处设置权限以允许我使用访问令牌,或者我可能需要为我的应用程序设置一个“平台”(似乎没有适合的应用程序)。
更新
此问题的答案是使用此处记录的系统用户:https://developers.facebook.com/ads/blog/post/2016/04/05/system-user-rollout/