しすてむ さんぽみち。

適当なしすてむ紹介など。ようはくだらないBlog(´▽`)

Twitterの書き込みに緯度、経度情報の埋め込み

2010-02-19 16:08:00 | PHP
タイトルの件を、このまえ必死に漁って処理してみたので一応ポストしておこー!
調べ方が悪かったのかもしれないけどね・・。

Twitter自体は、緯度、経度情報を含むデータがあった場合に特に表示しないのだけど、RSSには書き込まれています。

↓こんなかんじ
<georss:point>35.6288224 139.6846339</georss:point>

この情報は、確認した限りだとiphoneアプリのエコーフォンや、twitterクライアントのtwitdocなどでは参照していて、地図を表示してくれます。


ただ、twitterのつぶやき投稿からはこの位置情報は入れられないようで、APIを通すことで行えるようです。
普通のつぶやきで、地図表示を対応したい場合は「L:東京都渋谷区」のようなフォーマットがあるようです。
こちらは、緯度、経度に対応してるって情報も見たのですが対応していないようでした。
(そんな仕様に対応しているクライアントがなかった


というわけで、APIにて緯度、経度情報を挿入する方法について
twitterのAPIは、非常にシンプルですが細分化されているので、
公式の仕様書を参照するのが一番てっとりばやいかと思います。

http://usy.jp/twitter/index.php?Twitter%20API#y369b038
僕は英語が読んでると混乱してくるので、日本語訳見てます。(翻訳感謝><

つぶやきを行う部分は、「ステータス関連のAPI」のupdateが該当するようです。
渡し先はPOST(必須)で下記URLへ
http://api.twitter.com/1/statuses/update.format
(format は xml, json のうちのいずれかを指定)

この項の引数を見ていただければ、一目瞭然なのですが
・lat=緯度 (オプション) [将来、指定可能になる予定]
・long=経度 (オプション) [将来、指定可能になる予定]
の項目があります。
予定と書いてありますが、利用できました。


1つ失敗したのが、緯度がlatなので経度はlonだろうと思い込みして無駄に時間を過ごしました。
APIの利用の方法はいろいろあるかと思いますが、上記を指定することで、緯度経度の情報を引き渡すことができます。

今回、試したのは、PHPのpearにあるtwitterクラスです。
http://pear.php.net/package/Services_Twitter

このクラスの中で実際に、Twitterに対してつぶやき投稿のための通信を行う部分は、Twitter.php の setUpdateメソッドのようでした。

また、同メソッドの中で、投稿用のデータのパラメータの設定をしているのが
Twitter.php の _setDataメソッドのようでした。

このメソッドの第二パラメータに配列で、API仕様書にある引数を設定すると、その値が引き渡されるようです。
デフォルトだと"status"や"in_reply_to_status_id"の設定ができるのですが、それ以外は設定できなさそうでしたので、
この配列の中に"lat","long"を追加することでうまくいきました。

違うところで設定できるのかも?と思いましたが、そのあたりはおいおい調べていけたらなぁと思っています。

















最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。