広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog
「ここにブログの名前を入れます」は更新を終了しました。記事はすべて新ブログ「Big Bang」に移転済みです。記事のタイトルをクリックすると新ブログの該当記事に移動します。そちらでお楽しみください。

カテゴリー別アーカイブ  :  

Twitterでつぶやいた商品名をブログに列挙

新ブログ「amazon探検隊!」ではTwitterでつぶやいた商品名を列挙するようにしました。
こんな感じです。もちろん全部アフィリエイトです。

Amazon でチェック!

    たとえばこれなんか画像もカスタマーレビューも表示されてもし見てもらえれば
    ブログで下手な宣伝するよりも圧倒的に効果的だと思う訳です。

    追記:このブログの記事下にも導入してみました。

    以前はPHPを使った処理例を書きましたが、JavaScriptだけでも出来ます。

    新ブログ「Big Bang」で続きを読む

    JSONPでTwitter API searchメソッド

    今回もWebService/Twitter/API - わすWikiを参考にさせていただきました。

    先日の記事「Twitter API 愛の劇場のソース」では、Twitterのuser_timelineメソッドをPHPで呼び出し、simplexmlを使って処理しました。

    しかし、記事中に書いてあるようにソースに不備があります。

    書き直すに当たり、次の変更を行ないました。

    1. searchメソッドを使って検索する
    2. PHPを使わず、JavaScriptとJSONPだけで構成する。

    前回のソースは、とりあえずTwitter APIがどんなものか動かしてみるレベルの内容です。
    いいコードとはとてもいえないものでした。今回は使う開発言語を減らすことで、コードがスッキリしました。

    アクセス制限の問題もあります。1時間に150アクセスまでなので、PHPを置いたサーバーからTwitterのサーバーにアクセスするより、JavaScriptを読み込んだ各ブラウザからTwitteのサーバーにアクセスさせる方がIPを分散できます。

    さらに、前回はリレー小説の書き手分user_timelineメソッドを呼び出していました。今回はsearchメソッドで、Twitterのサーバーに問い合わせる回数を減らします。

    search API

    http://search.twitter.com/search.json

    赤字のjsonatomにすると、Atomが返ってきます。

    http://search.twitter.com/search.json?q=検索クエリー&callback=コールバック関数名&result_type=recent&rpp=100&since_id=200851367760363520&page=1

    参考記事:GET送信とは?

    必須パラメーターはqです。
    q=には検索クエリーをURLエンコードして送信します。検索クエリーの書き方は後述します。

    callback=にはJSONPのコールバック関数を指定します。このオプションはatomの時には適用されません。

    result_type=には、欲しい検索結果の種類を指定します。指定できるのは以下の3つ。指定しないとrecentが指定されたものとみなされます。

    result_typeに指定できる値
    recent   「新しい発言」を優先的に検索結果に含める
    popular 「人気の高い発言」を優先的に検索結果に含める
    mixed    「新しい発言」と「人気の高い発言」の両方を適度に検索結果に含める

    rpp=には、一度に取得する検索結果の数を指定します。指定できる最大値は100、未指定だと15になります。

    since_id=は指定したIDより大きなIDのステータスのみ取得するオプションです。検索に指定IDそのものは含まれません。

    page=1ページを rpp 件とみなして取得するページを指定します。最初のページは1です。また、rppとpageで遡れるのは、最大1500件までです。

    他にもたくさんのオプションがあり、WebService/Twitter/API - わすWikiにまとめられています。


    ところが、今回も問題がありました。ある日から1話目が表示されなくなったのです。
    どうも、約10日(1.5週)以上前のつぶやきは検索されないようです。

    また、利用できる検索インデックスについても日数の制限をかけています。現在は、1.5週となっていますが1日のささやきが増加するとこの数字はもっと短くなります。
    Twitter ビジネスユーザー向けブログ » Twitter APIで開発をするために知っておくべきことより

    ということで、またスクリプトを修正することになるのですが、それは別の記事にして、この話を続けます。

    検索クエリーの書き方

    今回の検索クエリはこうなりました。

    from:Tom3suteki OR from:welcome2ourshop -RT つづく

    from:Tom3suteki で、投稿者がTom3sutekiのつぶやきを検索します。

    リレー小説なので、投稿者が2人います。from:Tom3suteki または from:welcome2ourshop という場合は、ORで結びます。

    from:Tom3suteki OR from:welcome2ourshop

    ORは大文字で、前後に半角スペースを入れます。

    検索から除外したい文字列の前には - (ハイフン)をつけます。ハイフンと文字列の間にはスペースを入れずにくっつけます。

    -RT とすることでRTを含む文字を除外します。つまり、リツィートの除外を指定したことになります。

    つづくなどと、何もつけない文字列を指定すると、その文字列を含んだツィートを探します。

    つまり「from:Tom3suteki OR from:welcome2ourshop -RT つづく」は、「投稿者がTom3sutekiかwelcome2ourshopでRTを含まず(リツィートを含まず)、つづく という文字列があるツィートを探せ」という意味です。

    これを、URLエンコードした上で、q=に続けて書きます。

    新ブログ「Big Bang」で続きを読む