RefreshAccessToken.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. require_once __DIR__ . '/../../vendor/autoload.php'; // change path as needed
  3. use TencentAds\TencentAds;
  4. use TencentAds\Exception\TencentAdsResponseException;
  5. use TencentAds\Exception\TencentAdsSDKException;
  6. /*****
  7. * 本文件提供了一个从Refresh Token刷新Access Token的示例
  8. */
  9. class RefreshAccessToken
  10. {
  11. public static $tads;
  12. public static $CLIENT_ID = 'YOUR CLIENT ID';
  13. public static $CLIENT_SECRET = 'YOUR CLIENT SECRET';
  14. public static $REFRESH_TOKEN = 'YOUR REFRESH TOKEN';
  15. public function init()
  16. {
  17. $tads = TencentAds::init([
  18. 'is_debug' => true,
  19. ]);
  20. $tads->useProduction(); // oauth/token不提供沙箱环境
  21. static::$tads = $tads;
  22. return $tads;
  23. }
  24. public function main()
  25. {
  26. try {
  27. /* @var TencentAds $tads */
  28. $tads = static::$tads;
  29. $token = $tads->oauth()
  30. ->token([
  31. 'client_id' => static::$CLIENT_ID,
  32. 'client_secret' => static::$CLIENT_SECRET,
  33. 'grant_type' => 'refresh_token',
  34. 'refresh_token' => static::$REFRESH_TOKEN,
  35. ]);
  36. // 从返回里获得AccessToken并设置到$tads中
  37. $tads->setAccessToken($token->getAccessToken());
  38. // echo 'Access token expires in: ' . $token->getAccessTokenExpiresIn() . PHP_EOL;
  39. // echo 'Refresh token: ' . $token->getRefreshToken() . PHP_EOL;
  40. // echo 'Refresh token expires in: ' . $token->getRefreshTokenExpiresIn() . PHP_EOL;
  41. } catch (TencentAdsResponseException $e) {
  42. // When Api returns an error
  43. echo 'Tencent ads returned an error: ' . $e->getMessage() . PHP_EOL;
  44. throw $e;
  45. } catch (TencentAdsSDKException $e) {
  46. // When validation fails or other local issues
  47. echo 'Tencent ads SDK returned an error: ' . $e->getMessage() . PHP_EOL;
  48. throw $e;
  49. } catch (Exception $e) {
  50. echo 'Other exception: ' . $e->getMessage() . PHP_EOL;
  51. throw $e;
  52. }
  53. }
  54. }
  55. if (basename($_SERVER['PHP_SELF']) == basename(__FILE__)) {
  56. try {
  57. $example = new RefreshAccessToken();
  58. $example->init();
  59. $example->main();
  60. } catch (\Exception $e) {
  61. exit(-1);
  62. }
  63. }