addthis API 身份验证

addthis API Authentication

我正在尝试通过 addthis API (https://www.addthis.com/academy/addthis-analytics-api/) 获取一些分析数据,当我输入用户名和密码时,它可以通过网络浏览器正常工作,但无法确定了解我如何能够将其作为日常 cron 工作来完成。在 addthis 的开发页面上,它说查看身份验证方法,但是 link 只是将您带回到同一页面的顶部,谷歌搜索似乎没有找到任何如何以编程方式进行身份验证的示例。

到目前为止,我已经尝试添加 headers 并将数据作为 post 字段发送,但部分问题是我不知道我应该使用什么字段名称,所以我'我在黑暗中摸索了一下。有没有其他人有过 addthis API 的经验,并且知道如何通过脚本访问?

这是使用 headers

的尝试
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://api.addthis.com/analytics/1.0/pub/shares/url.json?pubid=PUB_ID&period=day');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$headers = array();
$headers[] = "userid: $user"; 
$headers[] = "password: $pass"; 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;

...然后使用 POST 字段

$data = array('userid' => $user, 'password' => $pass);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://api.addthis.com/analytics/1.0/pub/shares/url.json?pubid=PUB_ID&period=day');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Content-Length: '.strlen($data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;

您可以在url中传递认证用户名和密码。请看示例代码:

$url = 'https://api.addthis.com/analytics/1.0/pub/shares/url.json?pubid=PUB_ID&period=day';
$username = 'username';
$password = 'password';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
$result = curl_exec($ch);
echo $result;

或另一种方式:

$url = 'https://username:password@api.addthis.com/analytics/1.0/pub/shares/url.json?pubid=PUB_ID&period=day';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
$result = curl_exec($ch);
echo $result;