1

中国の Twitter クローンである Sina Weibo のグループに投稿できる PHP スクリプトを作成しようとしています。グループ機能を除けば、Weibo の実装は (API であっても) Twitter とほとんど同じように見えます。したがって、Twitter を類推として言及しています。

API で通常の投稿を行うことはできますが、Weibo の API はグループへの投稿をサポートしていません。(注: 私の意図は、数百万人に迷惑メールを送信することではなく、特許の有効期限に関する情報を関連する業界団体に毎日自動的に投稿するスクリプトを作成することでした。)

ソースは非公開ですが、手動でグループに投稿できるアプリケーション (新浪微群自动群发精灵) があるため、回避策があるはずです。そこで、Firebug を使用してサーバーに送信された投稿フォーム データをチェックして、PHP スクリプトに投稿フォーム情報を手動で複製させることで API ツイート コマンドを置き換えることができるかどうかを確認しようとしましたが、役に立ちませんでした。

これは、OAuth 接続の確立後に呼び出される callback.php ファイルのコードです。機能していない投稿フォーム メソッド (HTML タグ内) を優先して、更新を投稿するための有効な API メソッドがコメント アウトされました。

<?php
session_start();
include_once( 'config.php' );
include_once( 'saetv2.ex.class.php' );
$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );

if (isset($_REQUEST['code'])) {
    $keys = array();
    $keys['code'] = $_REQUEST['code'];
    $keys['redirect_uri'] = WB_CALLBACK_URL;
    try {       $token = $o->getAccessToken( 'code', $keys ) ;  } catch (OAuthException $e) {}
}

if ($token) {
    $_SESSION['token'] = $token;
    setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );

    ?><html><head></head><body>
    <form action="http://www.weibo.com/aj/mblog/add?__rnd=1340066897833" method="post">
    <input type="hidden" name="_surl" value="">
    <input type="hidden" name="_t" value=0>
    <input type="hidden" name="location" value="home">
    <input type="hidden" name="module" value="stissue">
    <input type="hidden" name="pic_id" value="">
    <input type="hidden" name="rank" value="">
    <input type="text" name="text" value="测试发表微博 test message" />
    <input type="submit">
    </form></body></html><?

    /*
    $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
    $msg = $c->update("测试发表微博 test message");
    if ($msg === false || $msg === null){   echo "Error occured";   return false;}
    if (isset($msg['error_code']) && isset($msg['error'])){ echo ('Error_code: '.$msg['error_code'].';  Error: '.$msg['error'] );   return false;} 
    echo($msg['id']." : ".$msg['text']." ".$msg["created_at"]);
    */

    } else echo('授权失败。 authentication failed');
?>

私はこのすべてにかなり慣れていないので、おそらく明らかな何かが欠けていると思いますが、Twitter/Weibo についてここで問題を突き止めるのに十分な知識を持っている人はいますか? おそらく簡単な回避策があるでしょうか?ありがとう!

4

1 に答える 1

0

しばらく経ちましたが、このスレッドに出くわした人にとっては、少し追いついてきました。Rubygem Watirを使用したブラウザーの自動化は、フォームのなりすましよりもはるかにうまく機能する可能性が高いようです。

于 2013-01-26T07:14:09.127 に答える