我在添加订阅者和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行
答案 0 :(得分:0)
AWeber示例使用名为Guzzle的PHP第三方HTTP客户端。您需要先设置客户端,然后才能使用它。您可以在AWeber的GitHub上的代码示例中查看此示例:
注意创建客户端的调用:
// 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是一个变量,您可以在某处用令牌初始化该变量。