1年半ほど前、SilentC[InterFace誌付録のColdFire基板です]で定期的にTwitterにつぶやくものを作りました。
しかし、これはBASIC認証を使用しているため、現在では使えません
※現在はOAuth認証です。
まぁTwitterが廃れていれば放っておくのですがw大盛況らしいのでなんとかしたい。(僕はあまり利用していませんが...)
そこで、今回はSilent Moon SDKで再びTwitterに温度をつぶやくものを作ります
つぶやくために何が必要かですが、それは以下の2つとなります。
1.クライアントアプリの申請登録
2.シグネチャ用にハッシュ関数(HMAC-SHA1)
1はGoogleにアプリを申請することで、コンシュマーキー、コンシュマーシークレット、アクセストークン、アクセストークンシークレットの4つキーが入手できます。
これらを指定のフォーマットでハッシュ化することで2のシグネチャが生成できます。
この辺は、ここを参照してください。ここ以外は、既存のライブラリ等を使用したりするため、マイコン(MCF52233)環境下ではあまり参考になりませんでした。
さて、つぶやくまでの具体的な手順です。
1.Twitterにログインする
2.下記URLにアクセスしてアプリケーションを登録する
http://twitter.com/apps/new
※Application TypeはClient
※Default Access typeはRead & Write
※Use Twitter for loginは チェックをつける
3.登録するとコンシュマーキー、シークレットを入手できるので記録しておく
※最初に登録した場合、何故かRead属性になっているケースがあるため、アプリケーションの詳細でRead&Writeに設定する
4.Twitter Access Token取得ツールを起動し、キーとシークレットを入れてREQUEST TOKENボタンを押す。
5.ブラウザが起動するので『アプリを認証』を押す
6.PINが表示されるため、ツールにPINを入力してACCESS TOKENの取得ボタンを押す
7.アクセストークン、シークレットを入手できるので記録しておく
8.プログラムソースの以下の定義(#define)内容を記録したものに書き換える
CONSUMER_KEY
CONSUMER_SECRET
ACCESS_TOKEN
ACCESS_TOKEN_SECRET
9.ビルドしてプログラムを転送し、ExecUser(1)で実行
以上で完了です。

プログラム的には以下のようになっています。
1.送信文字列をURLエンコード
2.時刻を取得するためUNIX TIME APIを使用して取得
3.SHA-1用にキー文字列とベース文字列を作成
4.ハッシュ値を生成
5.ハッシュ値をBASE64でエンコード
6.それをさらにURLエンコードし、シグネチャ完成
7.ヘッダーに組み込んでTwitter APIにOAuthでPOST
さらっと書いていますが、結構苦労しましたwwww
やっている最中は、何度も何度も何度も認証エラーをくらった
これでマイコンだけでTwitterに投稿できます!

回路図です。

配線はシンプルです。LM60と確認用のLEDだけです。
LM60は前にも書きましたが、424mVのDCオフセットをもっていて、そこが0℃になります。それを基準に6.25mV/℃とリニアに変化するため、LM35につづいて簡単に制御できるセンサーです。マイナス温度が測れたり、2.7Vから動作するのもポイント高いです。
![ColdFire[MCF52233]](https://blogimg.goo.ne.jp/user_image/14/2d/1c3722b1a2a3045b95e8841f4ff9c41f.jpg)
プロジェクトです。(※Twitter Access Token取得ツールを同梱)
Device: ColdFire MFC52233 CQ
IDE : CodeWarrior for ColdFire V7.0
Text : UTF-8
Font : Japanese FONT
ColdFire_twoauth.zip
※MakeColdfireBin.batのIPアドレスを自分の環境に書き換えてください。
※Ver7.2はUTF-8が使えますが、V7.0の場合はIDEでソースを編集しないでください
しかし、これはBASIC認証を使用しているため、現在では使えません

まぁTwitterが廃れていれば放っておくのですがw大盛況らしいのでなんとかしたい。(僕はあまり利用していませんが...)
そこで、今回はSilent Moon SDKで再びTwitterに温度をつぶやくものを作ります

つぶやくために何が必要かですが、それは以下の2つとなります。
1.クライアントアプリの申請登録
2.シグネチャ用にハッシュ関数(HMAC-SHA1)
1はGoogleにアプリを申請することで、コンシュマーキー、コンシュマーシークレット、アクセストークン、アクセストークンシークレットの4つキーが入手できます。
これらを指定のフォーマットでハッシュ化することで2のシグネチャが生成できます。
この辺は、ここを参照してください。ここ以外は、既存のライブラリ等を使用したりするため、マイコン(MCF52233)環境下ではあまり参考になりませんでした。
さて、つぶやくまでの具体的な手順です。
1.Twitterにログインする
2.下記URLにアクセスしてアプリケーションを登録する
http://twitter.com/apps/new
※Application TypeはClient
※Default Access typeはRead & Write
※Use Twitter for loginは チェックをつける
3.登録するとコンシュマーキー、シークレットを入手できるので記録しておく
※最初に登録した場合、何故かRead属性になっているケースがあるため、アプリケーションの詳細でRead&Writeに設定する
4.Twitter Access Token取得ツールを起動し、キーとシークレットを入れてREQUEST TOKENボタンを押す。
5.ブラウザが起動するので『アプリを認証』を押す
6.PINが表示されるため、ツールにPINを入力してACCESS TOKENの取得ボタンを押す
7.アクセストークン、シークレットを入手できるので記録しておく
8.プログラムソースの以下の定義(#define)内容を記録したものに書き換える
CONSUMER_KEY
CONSUMER_SECRET
ACCESS_TOKEN
ACCESS_TOKEN_SECRET
9.ビルドしてプログラムを転送し、ExecUser(1)で実行
以上で完了です。

プログラム的には以下のようになっています。
1.送信文字列をURLエンコード
2.時刻を取得するためUNIX TIME APIを使用して取得
3.SHA-1用にキー文字列とベース文字列を作成
4.ハッシュ値を生成
5.ハッシュ値をBASE64でエンコード
6.それをさらにURLエンコードし、シグネチャ完成
7.ヘッダーに組み込んでTwitter APIにOAuthでPOST
さらっと書いていますが、結構苦労しましたwwww
やっている最中は、何度も何度も何度も認証エラーをくらった

これでマイコンだけでTwitterに投稿できます!

回路図です。

配線はシンプルです。LM60と確認用のLEDだけです。
LM60は前にも書きましたが、424mVのDCオフセットをもっていて、そこが0℃になります。それを基準に6.25mV/℃とリニアに変化するため、LM35につづいて簡単に制御できるセンサーです。マイナス温度が測れたり、2.7Vから動作するのもポイント高いです。
![ColdFire[MCF52233]](https://blogimg.goo.ne.jp/user_image/14/2d/1c3722b1a2a3045b95e8841f4ff9c41f.jpg)
プロジェクトです。(※Twitter Access Token取得ツールを同梱)
Device: ColdFire MFC52233 CQ
IDE : CodeWarrior for ColdFire V7.0
Text : UTF-8
Font : Japanese FONT

※MakeColdfireBin.batのIPアドレスを自分の環境に書き換えてください。
※Ver7.2はUTF-8が使えますが、V7.0の場合はIDEでソースを編集しないでください