【问题标题】:addthis API Authentication添加此 API 身份验证
【发布时间】:2018-05-29 15:35:48
【问题描述】:

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

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

这是使用标题的尝试

$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;

【问题讨论】:

    标签: php curl addthis


    【解决方案1】:

    您可以在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;
    

    【讨论】:

      猜你喜欢
      • 2017-11-04
      • 2014-12-05
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2016-04-12
      相关资源
      最近更新 更多