2010-09-03 5 views
0

Я использовал базовый auth для отправки твитов с сервера каждый раз, когда песня была изменена. Теперь они заблокировали базовый auth, и я не уверен, как его включить. У меня есть сервер дома, который обновляет html-файл на веб-сервере, а затем вызывает следующий скрипт для извлечения из этого файла. Любые идеи о том, как это сделать просто?Использование основных oauth для отправки твита

<?php 


//==================================================== 
//   CONFIGURATION 
//==================================================== 

// YOUR TWITTER USERNAME AND PASSWORD 
$username = '#####'; 
$password = '#####'; 


DEFINE(htmlfile, '/homec/public_html/site.com/twitter.html'); 

$stationURL = "http://www.site.com"; 

$maxLimit = "139"; 

$da=""; 
[email protected](htmlfile, "r"); 

if ($f!=0) 
{ 
    [email protected]($f, 4096); 
    fclose($f); 
} 
else 
{ 
    exit; 
} 

$da=str_replace("\r", "\n", $da); 
$da=str_replace("\n\n", "\n", $da); 
$d=explode("\n", $da); 

$d[0]=trim($d[0], "|"); // title 
$d[1]=trim($d[1], "|"); // artist 

//==================================================== 
if ($d[0]=="" || $d[1]=="") 
{ 
    // IF WE COULD NOT GRAB THE ARTIST AND 
    // SONG TITLE FROM THE SAM-GENERATED HTML FILE, 
    // WE'LL BAIL OUT NOW WITHOUT SUBMITTING ANY TEXT 
    // TO TWITTER. 
    exit; 
} 
else 
{ 
    // SUCCESS IN GETTING ARTIST AND TITLE! 
    // WE'LL PROCEED WITH BUILDING A TEXT STRING TO SUBMIT TO TWITTER. 

    $message = urlencode('' . $d[1] . ' - ' . $d[0] . ' #bandradio #nowplaying '); 

    $stationURL = urlencode(' ' . $stationURL); 

    if ((strlen($message) + strlen($stationURL)) > $maxLimit) 
    { 
    // We have to truncate the artist-title string to make room for the station URL string. 
    $message = substr($message, 0, (($maxLimit - 2) - strlen($stationURL))); 
    $message .= ".." . $stationURL; 
    } 
    else 
    { 
    // No need to truncate, it all fits. 
    $message = $message . $stationURL; 
    } 
} // if ($d[0]=="" || $d[1]=="") 

//==================================================== 
// The twitter API address 
$url = 'http://twitter.com/statuses/update.json'; 

// Set up and execute the curl process 
$curl_handle = curl_init(); 
curl_setopt($curl_handle, CURLOPT_URL, "$url"); 
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl_handle, CURLOPT_POST, 1); 
//curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message"); 
//curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password"); 
$buffer = curl_exec($curl_handle); 
$resultArray = curl_getinfo($curl_handle); 
curl_close($curl_handle); 
+1

если format_your_code: readibility ++ – denniss

ответ

1

Скачать последнюю версию TwitterOAuth от http://github.com/abraham/twitteroauth/downloads Распакуйте загрузки и поместите twitteroauth.php и OAuth.php файлы в том же каталоге, что и файл со следующим кодом. Зарегистрируйте приложение по адресу http://dev.twitter.com/apps, а на странице с информацией о новых приложениях нажмите «Мой токен доступа», чтобы получить токен доступа. Заполните четыре требуемые переменные в сценарии ниже, и вы можете запустить его для публикации новых твитов.

<?php 
require_once('twitteroauth.php'); 
$connection = new TwitterOAuth('app consumer key', 'app consumer secret', 'my access token', 'my access token secret'); 
$connection->post('statuses/update', array('status' => 'text to be tweeted')); 
+0

Это сделал трюк. Благодарю. –

Смежные вопросы