如何使用aweber api添加新的订户usign php和aweber OAuth 2.0示例

时间:2019-07-16 03:43:55

标签: php aweber

我在添加订阅者和OAuth 2.0示例usign php中使用了aweber api

require_once('aweber_api/aweber_api.php');
$body = [
  'ad_tracking' => 'ebook',
  'custom_fields' => [
    'apple' => 'fuji',
    'pear' => 'bosc'
  ],
  'email' => 'anand@gmail.com',
  'ip_address' => '192.168.1.1',
  'last_followup_message_number_sent' => 0,
  'misc_notes' => 'string',
  'name' => 'Anand',
  'strict_custom_fields' => 'true',
  'tags' => [
    'slow',
    'fast',
    'lightspeed'
  ]
];
$headers = [
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'User-Agent' => 'AWeber-PHP-code-sample/1.0'
];
$listId='myid';
$accountId='myid';
$url = "https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/subscribers";
$response = $client->post($url, ['json' => $body, 'headers' => $headers]);
echo $response->getHeader('Location')[0];

错误代码:

注意:未定义的变量:第30行的D:\ xampp \ htdocs \ Aweber \ index.php中的客户端

致命错误:未捕获错误:在D:\ xampp \ htdocs \ Aweber \ index.php:30中调用null的成员函数post()堆栈跟踪:#0 {main}抛出在D:\ xampp \ htdocs中\ Aweber \ index.php,第30行

1 个答案:

答案 0 :(得分:0)

AWeber示例使用名为Guzzle的PHP第三方HTTP客户端。您需要先设置客户端,然后才能使用它。您可以在AWeber的GitHub上的代码示例中查看此示例:

https://github.com/aweber/public-api-examples/blob/ea87b1f504cb97d9081a9ea9c8737ae9fd8838e3/php/manage-subscriber

注意创建客户端的调用:

// Create a Guzzle client
$client = new GuzzleHttp\Client();

关于Guzzle的文档可以在这里找到:

http://docs.guzzlephp.org/en/stable/

似乎您还缺少授权标头。进行API调用时,除非在标头中包含访问令牌,否则它将失败,所以请不要忘记这一部分!您可以像这样将其添加到现有的标题中:

$headers = [
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'User-Agent' => 'AWeber-PHP-code-sample/1.0',
    'Authorization' => 'Bearer ' . $accessToken
];

其中$ accessToken是一个变量,您可以在某处用令牌初始化该变量。