- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
前回までで自動でTwitterに投稿するbotを作りましたが、もう少しロボットらしく、TLの情報を見てTweetができるように改造していきたいと思います。
まずは今回はTLの取得からです。
https://api.twitter.com/1.1/statuses/home_timeline.json?hogehoge...
と言う形でTLを取得することができますが、まずはhogehogeの部分は無くても取得できるので、一番シンプルな形で取得してみましょう。
function getTL(){
//Twitterサービスの初期化
var service = twitter.getService();
////ツイートの検索////
var url = "https://api.twitter.com/1.1/statuses/home_timeline.json";
var json = service.fetch(url);
var array = JSON.parse(json);
console.log(array[0].text)
}"Bad Authentication data."と言うエラーが出た場合、Twitterの認証が上手くいっていない可能性があります。このブログの#1の記事を確認してみてください。
ソースの説明をしていきます。
3行目はTwitterのサービスと連携します。
6行目はTwitterにリクエストするurlを指定しています。この場合は、TLを特に指定することなく取得するurlです。
7行目で指定したurlにアクセスして得られた情報をjsonに読み込みます。
8行目でparseしてarrayに読み込みます。
10行目でconsoleに表示します。今回はarrayの一番最初"0"個目に格納されている"text"情報を出力します。
取得したタイミングの最新の投稿が表示されるはずですが、読み込む対象のtweetが長文だった場合、全文が取得できない可能性があります。
これは、Twitter APIの標準仕様で"text"は、115文字を超えるtweet本文は省略されることになっているからです。これだと上手く使えないので、基本的にtweetを取得する際は、urlの最後に?をつけて、tweet_modeをextendedにしてください。この時、"text"は取得されず、 "full_text"を取得する必要があります。
////ツイートの検索//// //最大数200, リプライ除く, 前回リツイート以降のツイートを取得 var url = "https://api.twitter.com/1.1/statuses/home_timeline.json?tweet_mode=extended"; var json = service.fetch(url); var array = JSON.parse(json); console.log(array[0].full_text);
よって、上記のような書き方にして下さい。
それ以外に私の場合は下記のような追記をしています。
count=200⇒tweetの取得数を最大の200にする。
exclude_replies=true⇒返信は邪魔なので削除する。
since_id=" + lastID⇒直前の取得の際にIDを保存しておいて、それ以降のTweetだけを取得する。
- リンクを取得
- ×
- メール
- 他のアプリ
コメント
コメントを投稿