Использование основного oauth для отправки твита - PullRequest
0 голосов
/ 03 сентября 2010

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

  <?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="";
$f=@fopen(htmlfile, "r");

if ($f!=0)
{
  $da=@fread($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 Ответ

1 голос
/ 23 октября 2010

Загрузите последнюю версию 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'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...