1

特定の条件でメッセージを投稿するユーザーを自動的にフォローするために作成したこの PHP スクリプトがあります。一連のテスト アカウントでは 100% 動作しますが、使用したいアカウントでは動作しません。

アカウントの API レート制限を確認しましたが、十分に範囲内です。ユーザー名とパスワードが正しいことも確認しました。ユーザー名とパスワード以外を別のアカウントに変更すると機能しますが、(正しく) メイン アカウントに戻すと何も起こりません。私は完全に困惑しています。誰もこれに出くわしたことがありますか?

以下で使用する 2 つのファイルを含めます。他に役立つ情報があればお知らせください。可能であれば提供します。ありがとう!

インデックス.php

<?php
$url = "http://search.twitter.com/search.atom?q=SEARCHTERM&show_user=true&rpp=100";
$search = file_get_contents($url);

$regex_name = '/\<name\>(.+?) \(/';
preg_match_all($regex_name,$search,$user);
for($i=0;$user[1][$i];$i++)
    {
    $follow = $user[1][$i];
    include("follow.php");
    }
?>

フォロー.php

<?php
define('TWITTER_CREDENTIALS', 'username:password');
$url = "http://twitter.com/friendships/create/".$follow.".xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, TWITTER_CREDENTIALS);
$result= curl_exec ($ch);
curl_close ($ch);
?>

これに関する簡単な更新: 問題は Twitter 側にあることが判明しました。問題のアカウントには、何らかの理由で通常の API 制限よりも厳しい制限が課されていました。かなり特異な例だったので、回答を回答としてマークしていません。

4

2 に答える 2

2

cURL リクエストをデバッグするには、すべてを説明しましたが、Twitter-API をラップしたパッケージであるServices_Twitterを使用することもできます。かなり堅牢な応答処理を提供します。

現在、検索とフレンドシップもサポートしています。

それをしたくない場合は、Twitter-Search API だけに、JSON を使用して次のようにします。

<?php
$url    = "http://search.twitter.com/search.json?q=SEARCHTERM&show_user=true&rpp=100";
$search = file_get_contents($url);
if ($search === false) {
    die('Error occurred.');
}
$hits = json_decode($search);
var_dump($hits);
?>

解析が少なく、ほとんどのPHP5 インストールでext/jsonを使用できます。

于 2008-11-13T13:52:33.950 に答える
0

使用してみてください:

curl_setopt($ch,     CURLOPT_VERBOSE, 1);

問題の特定に役立つかどうかを確認します。

于 2008-11-12T18:34:47.303 に答える