Hatena::Groupnadesiko

そっとなでしこ RSSフィード


メインのブログに書くまでもない、なでしこ学習帳【記事一覧】 【このブログは何?】


特設!→【目次】なでしこ用Twitter 連携ライブラリ「なこったー」で遊ぶ


2010-09-07

「なこったー」でつぶやく

| 「なこったー」でつぶやく - そっとなでしこ を含むブックマーク はてなブックマーク - 「なこったー」でつぶやく - そっとなでしこ

 日本語プログラミング言語「なでしこ」用Twitter 連携ライブラリ「なこったーの「つぶやく」関数を使用し、Twitter APIの「statuses/update」 APIを呼んでみるサンプルです。

【関数】つぶやく({ハッシュ=?}PARAMで{文字列}STRと)~

 今回使用する関数は、「つぶやく」関数です。

■説明

 Twitter APIの「statuses/update」 APIを「なでしこ」から呼びtwitterにツイートを投稿する関数です。

 「statuses/update」 APIについては以下の通りです。

自分のステータスを更新(update)する。引数 status は必須。

Twitter API 仕様書 日本語訳

http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt

つまり、つぶやく文字列を引数 statusに渡してツイートを投稿します。

■引数

 詳細は、「Twitter API 仕様書 日本語訳」等を参照のこと。

  • {文字列}STRと
    • 必須です。投稿する文字列を140文字以内で指定します。
  • {ハッシュ=?}PARAMで
    • 省略可能です。今回のサンプルでは使用していません。
    • ハッシュ形式で以下の項目を指定できます(例:パラムとはハッシュ。#パラム@「in_reply_to_status_id」=「22963628345」。)
      • in_reply_to_status_id=ステータスID
        • 返信(reply)対象のステータスIDを指定。どのステータスに対する返信か明示するのに使用する。
        • ※存在しない、あるいはアクセス制限のかかっているステータスIDを指定した場合は無視される。
        • ※「@ユーザ名」が含まれない、あるいは@ユーザ名」で指定したユーザが存在しない場合、本引数は無視される。
      • lat=緯度
        • 投稿しようとしている発言に関する位置情報のうち、「緯度」を指定
        • ※ユーザー情報で「ツイートに位置情報を付ける」を無効にしている場合、本引数は無視される。
      • long=経度
        • 投稿しようとしている発言に関する位置情報のうち、「経度」を指定
        • ※ユーザー情報で「ツイートに位置情報を付ける」を無効にしている場合、本引数は無視される。
      • place_id=geocode
        • geo/reverse_geocode で取得した geocode を使って、位置情報を指定

※この他、ステータスの投稿に使用しているクライアント名を指定する「source=クライアント名」引数もあるが、「なこったー」のようにOAuth認証によるAPIを使用する場合は無視される。

■戻り値

Twitter APIへの問い合わせに成功した場合は、つぶやいた内容がハッシュテーブルの配列に格納されて戻ります。

詳細は、以下を参照。

また、次の場合はエラーを返す

  • 140文字を越えた文字列を投稿した場合、以下のエラー文言を返す。
error=Status is over 140 characters.
request=/1/statuses/update.json
  • 短時間内に、全く同じ内容を投稿した場合、以下のエラー文言を返す。
error=Status is a duplicate.
request=/1/statuses/update.json

■サンプルのソースコード

※「OAuth認証設定」部分を、事前に取得した「コンシューマ・キー」と「コンシューマ・シークレット」、「アクセストークン」と「アクセストークンシークレット」に書き換えて実行して下さい。

#-----------------------------------------------------------------------
# OAuth認証設定
#-----------------------------------------------------------------------
# Twitterにアプリケーション登録した際に発行された
# 「コンシューマ・キー」と「コンシューマ・シークレット」を設定
CONSUMER_KEY=「****」。
CONSUMER_SECRET=「****」。
# 「アプリケーションのアクセス許可」&認証で発行された
# 「アクセストークン」と「アクセストークンシークレット」を設定
OAUTH_TOKEN=「****」。
OAUTH_TOKEN_SECRET=「****」。
#-----------------------------------------------------------------------

!「nakotter.nako」を取り込む
なこったークライアントとはNakotter。
そのoauthのコンシューマのトークンキー = CONSUMER_KEY。
そのoauthのコンシューマのシークレット = CONSUMER_SECRET。
そのoauthのトークンキー = OAUTH_TOKEN。
そのoauthのシークレット = OAUTH_TOKEN_SECRET。

つぶやき百四十文字は、
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」&
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」&
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」&
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめモ」。

つぶやき百四十一文字は、
「xあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」&
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」&
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」&
「あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめも」。

「文字数:{つぶやき百四十文字の文字数}」を言う。
なこったークライアントからつぶやき百四十文字とつぶやく。
それをメモ記入。
# 結果→成功。投稿されたステータス情報が返る

「文字数:{つぶやき百四十一文字の文字数}」を言う。
なこったークライアントからつぶやき百四十一文字とつぶやく。
それをメモ記入。
# 結果→以下のエラーメッセージが表示される
#  error=Status is over 140 characters.
#  request=/1/statuses/update.json