Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2011, 10:09
Zarith
 
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Publicar Nombre de cancion atravez de PHP a Twitter

Hola Chicos yo tengo una emisora de radio el tema es que deseo crear un script donde presionando un boton de enviar envie lo siguiente "texto predefinido + nombre del artista - canombre de la cancion + texto predefinido2"


he estado haciendo pruebas y lo que ontengo es lo siguiente :)
en la raiz de hosting / creo la carpeta /twitter y dentro de ella :)

comtemplara
/twitter/
01 archivo CurrentSong.txt (obtien el nombre de la cancion previameete subida via FTP qeu se actualiza cada minuto)
01 archivo ajax.js (mostrar el texto del archivo CurrentSong.txt en el index.php)
01 archivo index.php (obtien el formulario + el llamado de CurrentSong.txt asi como la conexion a twitter y boton de envio)
02 archivo d ela libreria de Abrahm (para conectarte a twitter)

Poniendolo en marcha :)

Archivo CurrentSong.txt
Código:
Thalia - Amarillo Azul

Archivo ajax.js (funciona)
Código:
// Cambia estos parametros

var seconds = 60; // el tiempo en que se refresca
var divid = "timediv"; // el div que quieres actualizar!
var url = "CurrentSong.txt"; // el archivo que ira en el div

////////////////////////////////
//
// Refreshing the DIV
//
////////////////////////////////

function refreshdiv(){

// The XMLHttpRequest object

var xmlHttp;
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Tu explorador no soporta AJAX.");
return false;
}
}
}

// Timestamp for preventing IE caching the GET request

fetch_unix_timestamp = function()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}

var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;

// The code...

xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp.responseText;
setTimeout('refreshdiv()',seconds*1000);
}
}
xmlHttp.open("GET",nocacheurl,true);
xmlHttp.send(null);
}

// Empieza la función de refrescar

window.onload = function startrefresh(){
setTimeout('refreshdiv()',seconds*1000);
}
Archivo index.php (problema)
Código:
<?php

require('twitteroauth.php'); //incluir la librería
define('_CONSUMER_KEY','8dQjLe0MIbKGNEoJoyUoiw'); //La obtenes en el paso 1
define('_CONSUMER_SECRET','XP7ISxd3aZSIkLkN8nYBiiJhKtbXPPHPHpm1l8tSQ'); //La obtenes en el paso 1
define('_OAUTH_TOKEN','98953254-5wWZBcu1vhrP9iIt2iK0lJojC1V3jbvMWEFiTyvrc'); //La obtenes en el paso 1
define('_OAUTH_TOKEN_SECRET','fpwSm2kqKPJt4AVZuY6mZvoiLNmYBqot8gmvcaBU'); //La obtenes en el paso 1
 
		$bit=tinyurl($link); //reducimos el link con la api de bit.ly
		$quedan=(140-strlen($bit))-4; // calculo los caracteres restantes que me quedan para publicar restando los puntos suspensivo
		$mensaje=substr($mensaje,0,$quedan).' ...'.$bit; // corto el mensaje en caso de que sea muy largo
 
//declaramos la función que realiza la conexión a tu aplicación de twitter
		function getConnectionWithAccessToken() {
                    $connection = new TwitterOAuth(_CONSUMER_KEY, _CONSUMER_SECRET,_OAUTH_TOKEN, _OAUTH_TOKEN_SECRET);
                   return $connection;
                }
//Realizamos la conexión
$connection = getConnectionWithAccessToken();
//Publicamos el mensaje en twitter
$twitter=$connection->post('statuses/update', array('status' =>utf8_encode($mensaje)));
 
//Función para acortar URL con bit.ly . Primero debemos registrarnos en http://bit.ly para obtener clave api y usuario
 function tinyurl($url_larga){
$tiny = "http://api.bit.ly/v3/shorten?login=donaorgasmos&apiKey=R_3f7896f1a9c43047c9700aab3ef4edfb&format=txt&longUrl=".$url_larga;
$sesion = curl_init();
curl_setopt ( $sesion, CURLOPT_URL, $tiny );
curl_setopt ( $sesion, CURLOPT_RETURNTRANSFER, 1 );
$url_tiny = curl_exec ( $sesion );
curl_close( $sesion );
return($url_tiny);
}
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<script src="ajax.js"></script><!--Aqui el java script que llama la funcion del Ajax-->
</head>

<body>
<!--Aqui el java script que llama la funcion del Ajax-->
<script type="text/javascript">
refreshdiv();
</script>
<!--Aqui el Div en el que se coloca el contenido de escucho.php-->
<div name="timediv" id="timediv">
</div>



<form name="form" method="post">
    <input name="mensaje" name="timediv"  id="timediv" type="text" value="123" width="60">
    <input type="text" name="url" value="http://web de la radio/" width="20">
    <input type="submit" value="Enviar"></form>
</body>
</html>
Librerias Descargalas de http://dl.dropbox.com/u/20151934/tu/twitteroauth.rar
OAuth.php
twitteroauth.php


Es un sript sencillo parentemente el tema o problema esta en la conectividad hay que tener en cuenta de que se debe activar el CURL en el hosting y la version el PHP favor de ayudarme con esto ultimo :)

para ustedes genera pruebas deben crear su cuenta de twitter, y su API esto esta en la aprte inferior de la web de twitter.


Debe quedar asi :



Saludos
Zarith