blog

Tessel で遊ぶ シリーズTesselで遊ぶ:Tesselからツイートできなかった話

    • Ryuichi Nonaka
    この記事は書かれてから1年以上経過しており、内容が古い場合があります。

    前回の記事Tesselで遊ぶ:主なコマンドとスクリプトをフラッシュメモリへ書き込むでコマンドについて一通り目を通したので今回はチュートリアルのツイートについて試してみましたが動作させることができませんでした。Tesselの公式Twitterアカウントからリプライをもらい教えてもらったのですがTwitterのAPI変更により今のところ非対応、Tesselの公式ドキュメントには現時点(2015年5月8日)でも掲載されていますが、そのうち非公開?となるようです。

    試したこと

    掲載されているサンプルは古いバージョンのものらしく、サンプル自体も動きません。加えてパッケージのドキュメントに書かれている最新版のサンプルを使ってもTesselで動かすことはできません。

    せっかくなので今回はローカルで動作させたサンプルを掲載しておきます。自身のアカウントで試すにはTwitterのアプリケーションマネジメントから新しいアプリケーションを作りアクセストークンを発行します。

    アクセストークンを発行するにはTwitterの電話番号認証が必要です。アカウント設定のモバイル設定から電話番号を設定しSMSで認証を済ませます。SMSが届かない場合、キャリアの設定画面から海外のSMSが届くよう設定が必要です。

    サンプルコードはこちら。サンプルを動かすにはnode-twitterモジュールが必要です。

    var Twitter = require('twitter');
    
    var client = new Twitter({
      consumer_key: '...',
      consumer_secret: '...',
      access_token_key: '...',
      access_token_secret: '...'
    });
    
    client.post('statuses/update', {status: 'I am a tweet'}, function(error, tweet, response){
      if (!error) {
        console.log(tweet);
      } else {
        console.log(error);
        console.log(response);
        console.log(tweet);
      }
    });
    

    ローカルで動かす場合、$ node tweet.jsでツイートさせることができます。

    Tesselで実行するとエラーになる

    ローカルではうまくいきましたがTesselではステータスコードが400で認証がうまくいかずエラーになります。

    {
     errors : [ {
       code : 215,
       message : Bad Authentication data.
      } ]
    }
    

    公式のリプライの通り、現時点で簡単にツイートさせる方法はなさそうですがRequestモジュールを使ってAPIを叩けば可能かもしれませんね。そのうち対応してくれると助かりますが・・・

    とりあえず、チュートリアルはこれで終わりになります。いくつかやってみたいことはあるのでTwitterの件も含めて引き続き試したことをメモしていきたいと思います。日本語のツイートまでチェックしてリプライをくれた@technicalhumansには感謝です。

    参考

    シリーズ

    1. Tesselで遊ぶ:HELLO, (PHYSICAL) WORLD!
    2. Tesselで遊ぶ:気候モジュールのサンプルコードを動かしてみる
    3. Tesselで遊ぶ:Wi-Fiにつないでみる
    4. Tesselで遊ぶ:主なコマンドとスクリプトをフラッシュメモリへ書き込む
    5. Tesselで遊ぶ:Tesselからツイートできなかった話

    コメント・フィードバック