コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

DSからtwitterに投稿するには(5)

いままで作ってきたプログラムを使って、twitterに投稿するプログラムを作ったので紹介します。

int twitterPost( char *text, char *id, char *passwd );

textの内容をtwitterにポストします。idはIDをpasswdはパスワードを入力します。idとパスワードが長いとbasicAuth[64]を大きくする必要があります。twitter.comから返って来るファイルはtwitter.xmlに保存します。このプログラムでtwitterに投稿できました。

//**************************************************
// twitterに投稿します
// text:投稿内容, id:twitterのID, passwd:パスワード
// 戻り値: 1:成功
//**************************************************
int  twitterPost( char *text, char *id, char *passwd )
{
FILE    *fpd = NULL;
char    *xmlfilename = "twitter.xml";
int      ret = true;
char    basicAuth[64];
char    tweet[512];
char    *cptmp;

  HttpFileGetIni();  //http取得パラメータの初期化

  Wifi_EnableWifi();          //wifiを開始
  if( !DS_WifiAutoConnect() ){    //APに自動接続
    ShinoUpPrint( SubScreenA, (u8 *)"Wifiアクセスポイントに接続できませんでした", RGB(31,0,0),RGB(0,0,0), 1,RGB(0,0,0) );
    return( WIFI_AP_CONNECT_ERROR );
  }

  HttpHeader.Host = "twitter.com";
  HttpHeader.UserAgent = "Nintendo DS";
  HttpHeader.Referer = "http://twitter.com/";

  //*** Basic認証コードの生成 ***
  strcpy( tweet, id );  //tweet[]を使いまわしています。すいません。
  strcat( tweet, ":" );
  strcat( tweet, passwd );
  
  strcpy( basicAuth, "Basic " );
  cptmp = basicAuth;
  cptmp += 6;
  EncodeBase64( tweet, cptmp, strlen( tweet ) );
  HttpHeader.Authorization = basicAuth;

  //*** 投稿データの生成 ***
  strcpy( tweet, "/statuses/update.xml?status=" );
  cptmp = tweet;
  cptmp += 28;
  moji216( (unsigned char*)text, cptmp, 512 );
  HttpHeader.Post = tweet;

  ShinoUpPrintBox( MainScreenA, (u8*)text, 42, RGB(31,31,31), RGB(0,0,0), 1, RGB(0,0,0) );
  //ShinoUpPrintBox( MainScreenA, (u8*)HttpHeader.Authorization, 42, RGB(31,31,31), RGB(0,0,0), 1, RGB(0,0,0) );

  fpd = fpOpen( "", xmlfilename, 1 );
  if( fpd==NULL ){
    ShinoUpPrint( SubScreenA, (u8 *)xmlfilename, RGB(31,0,0),RGB(0,0,0), 1,RGB(0,0,0) );
    ShinoUpPrint( SubScreenA, (u8 *)"↑ fopen Error", RGB(31,0,0),RGB(0,0,0), 1,RGB(0,0,0) );
    Wifi_DisconnectAP();  //APから切断
    Wifi_DisableWifi();    //wifi停止
    return( false );
  }
  ret = HttpPost( fpd, NULL, "twitter.com" );
  fclose( fpd );

  Wifi_DisconnectAP();  //APから切断
  Wifi_DisableWifi();    //wifi停止
  return( ret );
}

ソフトキーボードを使って、DSで文字入力してtwitterに投稿しようとプログラムを作ったのですが、文字コード体系をUTF-8に変更したので、ソフトキーボードのプログラムがまともに動きませんでした。大改造する必要があります。

風邪気味なので、今日はこの辺で・・・。

本当にやりたいことリスト

(ブログの終わりにやりたいことを書いておきたいと思います)

  • 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
  • Androidプログラム
  • Web系のプログラム