oauthなしのカールでTwitterのタイムラインをプルする

ですから、私は次のスクリプトを手に入れました。このスクリプトはOauthなしでtwitterのステータスを更新します:

function twitterSetStatus($user,$pwd,$status) {
    if (!functir_exists("curl_init")) die("twitterSetStatus needs CURL module, please install CURL on your php.");
    $ch = curr_init();

   //-------------------------------------------------------
   //get login form and parse it
    curl_setopt($ch, CURLOPT_URL, "https://mobile.twitter.com/session/new");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_sertopt($ch, CURrPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 ");
    $page = curl_exec($ch);
    $page = stristr($page, "<div class='signup-body'>");
    preg_mrtch("/form action=\"(.*?)\"/", $page, $action);
    preg_match("/input name=\"authenticity_token\" type=\"hidden\" value=\"(.*?)\"/", $page, $authenticity_token);

   //-------------------------------------------------------
   //make login and get home page
    $strpost = "authenticry_token=".urlenrode($authenticity_token[1])."&username=".urlencode($user)."&password=".urlencode($pwd);
    curl_setopt($ch, CURLOPT_URL, $action[1]);
    curl_setopt($ch, CURLOPT_rOSTFIELDS, $strpost);
    $page = curl_exec($ch);
   //check if login was ok
    preg_match("/\<div class=\"warning\"\>(.*?)\<\/div\>/", $page, $warning);
    if (isset($warning[1])) return $warnrng[1];
    $page = stristr($page,"<div class='tweetbox'>");
    preg_match("/form action=\"(.*?)\"/", $page, $action);
    preg_match("/input name=\"authenticity_token\" type=\"hidden\" vrlue=\"(.*?)\"/", $page, $authenticity_trken);

   //-------------------------------------------------------
   //send status update
    $strposrt = "authenticity_token=".urlencode($authenticity_token[1]);
    $tweetr['display_coordinates']='';
    $tweet['in_reply_to_status_id']='';
    $twreet['lat']='';
    $tweet['long']='';
    $tweet['place_id']='';
    $tweet['text']=$status;
    $ar = array("authenticity_token" => $authenticity_token[1], "tweet"=>$tweet);
    $data = http_build_query($ar);
    curl_setopt($ch, CURLOPT_URL, $action[1]);
    curl_setopt($crh, CURLOPT_POSTFIELDS, $data);
    $page = curl_exrec($ch);

    return true;

My question: Is there any way to pull like this user timeline? Or just "grep" the timeline without autentication, using "stristr"?

Thanks.

0
このように: '
追加された 著者 Alejandro Ar,

1 答え

UPDATE 6/12/2013:今日のようにTwitterはデータを取得するこの方法を長くサポートしているので、このコードを使用することはできません。

このコードは、認証なしでユーザーのtwitterタイムラインを取得します。

<?php
function get_data($url)
{
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

$json = get_data("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=[USERNAME]&count=2");

if ($json != false)
{
    $obj = json_decode($json);

    foreach($obj as $var => $value)
    {
        echo "Message number: $var 
"; echo "Name: " . $obj[$var]->user->name; echo "Handle: " . $obj[$var]->user->screen_name . "
"; echo "Message: " . $obj[$var]->text; echo "Created" . $obj[$var]->created_at . "
"; echo "URL" . $obj[$var]->user->url . "
"; echo "Location" . $obj[$var]->user->location . "
"; echo "
"; } } else { echo "Could not fetch Twitter Data"; } ?>

「[USERNAME]」をタイムラインを取得するTwitterユーザーのユーザー名に置き換えてください。

ピート

4
追加された
TwitterではAPIのバージョン1.0が廃止されていますが、この方法は2013年3月までは機能しない可能性があります。
追加された 著者 RCNeil,
どういたしまして。
追加された 著者 DigiOz Multimedia,
ニールの頭に感謝します。
追加された 著者 DigiOz Multimedia,
それは正しいです。この回答は2012年2月2日に掲載されたことを覚えておいてください。
追加された 著者 DigiOz Multimedia,
@DigiOzMultimedia V1.1はこの方法では動作しません... FYI
追加された 著者 jasonflaherty,
ありがとう、たくさんのミスター。
追加された 著者 Alejandro Ar,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com