получить количество акций для Google и Twitter с PHP больше не работает

Я использую для подсчета доли в социальных сетях с этими функциями:

function get_tweets($url) {
$json_string = $this->file_get_contents_curl('http://urls.api.twitter.com/1/urls/count.json?url=' . rawurlencode($url));
$json = json_decode($json_string, true);
return isset($json['count'])?intval($json['count']):0;
}

function get_fb($url) {
$json_string = $this->file_get_contents_curl('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls='.rawurlencode($url));
$json = json_decode($json_string, true);
return isset($json[0]['total_count'])?intval($json[0]['total_count']):0;
}

function get_pinterest($url) {
$return_data = $this->file_get_contents_curl('http://api.pinterest.com/v1/urls/count.json?url='.rawurlencode($url));
$json_string = preg_replace('/^receiveCount((.*))$/', "\1", $return_data);
$json = json_decode($json_string, true);
return isset($json['count'])?intval($json['count']):0;
}

private function file_get_contents_curl($url){
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
$cont = curl_exec($ch);
if(curl_error($ch))
{
die(curl_error($ch));
}
return $cont;
}

function get_plusones($url)  {
$contents = file_get_contents('https://plusone.google.com/_/+1/fastbutton?url='.rawurlencode( $url ));
preg_match( '/window\.__SSR = {c: ([\d]+)/', $contents, $matches );
return isset($matches[0]) ? (int)str_replace('window.__SSR = {c: ', '', $matches[0]) : 0;

}

Через 2 дня он больше не работает для твиттера и гугла, и я получил эту ошибку:

failed to open stream: Connection timed out

Я думаю, что мой ip был запрещен Google и Twitter, но я не уверен в этом.
Есть ли кто-то, кто может подтвердить мою гипотезу?

Если я пойду через решение javascript, будет ли оно работать?

0

Решение

Руководство по php_curl: http://php.net/manual/en/function.curl-getinfo.php

CURLINFO_HTTP_CODE сообщит вам код ответа HTTP, отправленный серверами API. Попробуйте войти или распечатать на странице, если вы находитесь в тестовой среде. Если код ответа похож на 403, сервер API отклонил запросы, отправленные с вашего сервера.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]