2017-12-15 13 views
0

사용자 이름과 비밀번호를 입력 할 때 웹 브라우저를 통해 잘 작동하는 추가 API (https://www.addthis.com/academy/addthis-analytics-api/)를 통해 일부 분석 데이터를 얻으려고 시도하지만 어떻게 할 수 있는지 파악할 수 없습니다. 이것을 매일의 cron 일로하기 위해서. addthis의 dev 페이지에서는 인증 방법을 살펴 보지만 링크를 통해 동일한 페이지의 맨 위로 돌아갈 수 있으며 프로그래밍 방식으로 인증하는 방법에 대한 예를 찾기 위해 인터넷 검색이 나타나지 않습니다.addthis API 인증

지금까지 헤더를 추가하고 게시 필드로 데이터를 보내려고했지만 문제의 일부는 내가 사용해야하는 필드 이름을 모르는 것이므로 어둠 속에서 조금 어수선합니다. 다른 사람이 추가 API에 대한 경험이 있고 스크립트를 통해 액세스하는 방법을 알고 있습니까?

다음은 URL에 인증 사용자 이름과 암호를 전달 할 수있는 헤더

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

답변

0

입니다.

$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:[email protected]/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; 
샘플 코드를 참조하십시오