integrar google developer php api google-api google-plus google-plus-one

php - developer - integrar login google en mi web



¿Cómo obtener el recuento de Google+1 para la página actual en PHP? (8)

El próximo script PHP funciona muy bien hasta ahora para recuperar el recuento de Google+ en recursos compartidos y +1.

$url = ''http://nike.com''; $gplus_type = true ? ''shares'' : ''+1s''; /** * Get Google+ shares or +1''s. * See out post at stackoverflow.com/a/23088544/328272 */ function get_gplus_count($url, $type = ''shares'') { $curl = curl_init(); // According to stackoverflow.com/a/7321638/328272 we should use certificates // to connect through SSL, but they also offer the following easier solution. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); if ($type == ''shares'') { // Use the default developer key AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ, see // tomanthony.co.uk/blog/google_plus_one_button_seo_count_api. curl_setopt($curl, CURLOPT_URL, ''https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ''); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, ''[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"'' . $url . ''","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]''); curl_setopt($curl, CURLOPT_HTTPHEADER, array(''Content-type: application/json'')); } elseif ($type == ''+1s'') { curl_setopt($curl, CURLOPT_URL, ''https://plusone.google.com/_/+1/fastbutton?url=''.urlencode($url)); } else { throw new Exception(''No $type defined, possible values are "shares" and "+1s".''); } $curl_result = curl_exec($curl); curl_close($curl); if ($type == ''shares'') { $json = json_decode($curl_result, true); return intval($json[0][''result''][''metadata''][''globalCounts''][''count'']); } elseif ($type == ''+1s'') { libxml_use_internal_errors(true); $doc = new DOMDocument(); $doc->loadHTML($curl_result); $counter=$doc->getElementById(''aggregateCount''); return $counter->nodeValue; } } // Get Google+ count. $gplus_count = get_gplus_count($url, $gplus_type);

¿Quiero obtener la cuenta de Google + 1 para la página web actual? Quiero hacer este proceso en PHP, luego escribir el número de recursos compartidos o +1 en la base de datos. Por eso, lo necesito. Entonces, ¿cómo puedo hacer este proceso (obteniendo la cuenta de + 1s) en PHP?
Gracias por adelantado.


Este funciona para mí y es más rápido que el CURL:

function getPlus1($url) { $html = file_get_contents( "https://plusone.google.com/_/+1/fastbutton?url=".urlencode($url)); $doc = new DOMDocument(); $doc->loadHTML($html); $counter=$doc->getElementById(''aggregateCount''); return $counter->nodeValue; }

También aquí para Tweets, Pins y Facebook.

function getTweets($url){ $json = file_get_contents( "http://urls.api.twitter.com/1/urls/count.json?url=".$url ); $ajsn = json_decode($json, true); $cont = $ajsn[''count'']; return $cont; } function getPins($url){ $json = file_get_contents( "http://api.pinterest.com/v1/urls/count.json?callback=receiveCount&url=".$url ); $json = substr( $json, 13, -1); $ajsn = json_decode($json, true); $cont = $ajsn[''count'']; return $cont; } function getFacebooks($url) { $xml = file_get_contents("http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($url)); $xml = simplexml_load_string($xml); $shares = $xml->link_stat->share_count; $likes = $xml->link_stat->like_count; $comments = $xml->link_stat->comment_count; return $likes + $shares + $comments; }

Nota: los números de Facebook son la suma de Me gusta + acciones y algunas personas dijeron más comentarios (todavía no busqué esto), de todos modos use el que necesite.

Esto funcionará si su configuración de php permite abrir una URL externa, verifique su configuración de php "allow_url_open".

La esperanza ayuda.


Google actualmente no tiene una API pública para obtener el recuento de +1 para las URL. Puede presentar una solicitud de función here . También puede utilizar el método de johndyer.name/… mencionado por @DerVo. Tenga en cuenta que este método podría cambiar y romperse en cualquier momento.


He lanzado una cuenta de recuperación de bibliotecas PHP para las principales redes sociales. Actualmente soporta Google, Facebook, Twitter y Pinterest.

Las técnicas utilizadas son similares a las descritas aquí y la biblioteca proporciona un mecanismo para almacenar en caché los datos recuperados. Esta biblioteca también tiene algunas otras características interesantes: instalable a través de Composer, totalmente probada, con soporte HHVM.

http://dunglas.fr/2014/01/introducing-the-socialshare-php-library/


He reunido este código para leer el recuento directamente desde el iframe utilizado por el botón social. No lo he probado en escala masiva, por lo que tal vez deba ralentizar las solicitudes y / o cambiar el agente de usuario :). Este es mi código de trabajo:

function get_plusone($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://plusone.google.com/_/+1/fastbutton? bsv&size=tall&hl=it&url=".urlencode($url)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $html = curl_exec ($curl); curl_close ($curl); $doc = new DOMDocument(); $doc->loadHTML($html); $counter=$doc->getElementById(''aggregateCount''); return $counter->nodeValue;

}

El uso es el siguiente:

echo get_plusones(''http://.com/'');

El resultado es: 3166


Tuve que fusionar algunas ideas de diferentes opciones y urls para que funcionara para mí:

function getPlusOnes($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://plusone.google.com/_/+1/fastbutton?url=".urlencode($url)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $html = curl_exec ($curl); curl_close ($curl); $doc = new DOMDocument(); $doc->loadHTML($html); $counter=$doc->getElementById(''aggregateCount''); return $counter->nodeValue; }

Todo lo que tenía que hacer era actualizar la URL, pero quería publicar una opción completa para los interesados.

echo getPlusOnes(''http://.com/'')

Gracias a Cardy por usar este enfoque, solo tuve que obtener una url que me funcionó ...


La forma cURL y API enumerada en las otras publicaciones aquí ya no funciona.

Todavía hay al menos 1 método , pero es feo y Google claramente no lo admite. Simplemente extraiga la variable del código fuente de JavaScript para el botón oficial con una expresión regular:

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


function get_plusones($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc"); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, ''[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"'' . $url . ''","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]''); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array(''Content-type: application/json'')); $curl_results = curl_exec ($curl); curl_close ($curl); $json = json_decode($curl_results, true); return intval( $json[0][''result''][''metadata''][''globalCounts''][''count''] ); }

echo get_plusones("http://www..com")

de internoetics.com