2

我的应用因使用 Ads API 而被列入白名单。

我想知道关于身份验证流程。比如说,我需要通过 API 检索和执行日常任务的操作(无需用户交互),我发现身份验证过程非常繁琐。

有没有办法使用我的应用访问令牌而不是用户访问令牌?我希望能够为每个用户只批准一次我的应用程序,然后能够在没有用户交互的情况下工作。我能做到这一点吗?

4

3 回答 3

3

应用访问令牌与这种情况无关。

我必须使用用户访问令牌。我跟着这个文档:https ://developers.facebook.com/docs/reference/ads-api/

最终,应该使用一些客户端代码来获取用户权限,然后再次请求获取用户令牌。

所以你必须打电话给 https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=ads_management,offline_access& response_type=code

获取验证码并再次拨打电话: https ://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&client_secret=YOUR_APP_SECRET&code=AUTHORIZATION_CODE

然后您将获得一个仅有效期为两个月的访问令牌,这与 Facebook 文档在此处所说的相反: https ://developers.facebook.com/roadmap/offline-access-removal/

“广告 API 在特殊情况下允许离线收集统计信息。PMD 合作伙伴应使用服务器端 OAuth 流程来接收未过期的令牌,而不是具有更长过期时间的令牌。”

太糟糕了,访问令牌并不是永远有效......

于 2013-05-30T14:41:42.290 回答
1

根据本文档中的“例外 4” ,如果您拥有 Ads API 访问权限,并且使用正确的工作流程,您应该能够获得一个不会过期的令牌。遵循此处概述的指南,如果您使用服务器端 OAuth 流程,要发出以下请求,您应该获得一个不会过期的令牌:

GET /oauth/access_token?  
grant_type=fb_exchange_token&           
client_id={app-id}&
client_secret={app-secret}&
fb_exchange_token={short-lived-token} 
于 2013-09-11T20:47:21.443 回答
1

感谢有关访问令牌过程繁琐的反馈。因为这是一个一对多的解决方案——一个 App ID 可以代表多个人管理多个广告帐户——我们需要代表人们拨打电话。

您应该能够获得 Ads API 的持久访问令牌。如果您没有得到它,请提供您正在遵循的确切步骤,以便我们查看是否存在错误或者您可能遗漏了一个步骤。

谢谢。

于 2014-05-08T06:45:26.017 回答