酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Mobile( .NET Compact Framework)でTwitter APIを使ってPOSTで投稿する

Twitter APIを使ってPost出来ないという声を聞いたので、自前のTwitterクライアントで使っているコードを貼り付けておきますね。

Windows MobileでTwitter APIを使ってPOSTで投稿する

Windows Mobile(.NET compact Framwork)でも使えるコードです。

''' <summary>  
''' Twitterへ投稿する  
''' </summary>  
''' <param name="status">Twitterへ投稿する文字列</param>  
''' <returns>サーバーレスポンス(xmlフォーマット)</returns>  
Public Function Post(ByVal status As String) As System.IO.Stream  
  
    Dim userId As String = "screenId"  
    Dim password As String = "password"  
    Dim url As String = "http://twitter.com/statuses/update.xml"  
  
    ' URI 文字列をエスケープ表現へ変換  
    Dim parm As String = "status=" & Uri.EscapeUriString(status)  
    Dim data() As Byte = Encoding.ASCII.GetBytes(parm)  
  
    ' POSTメソッドで送信する為のあれこれ  
    Dim webReq As WebRequest = HttpWebRequest.Create(url)  
    webReq.Method = "POST"  
    webReq.ContentType = "application/x-www-form-urlencoded"  
    webReq.ContentLength = data.Length  
  
    ' BASIC認証用に関する情報をBase64でエンコード  
    Dim basicData() As Byte = Encoding.UTF8.GetBytes(userId & ":" & password)  
    Dim auth As String = System.Convert.ToBase64String(data)  
    webReq.Headers.Add("Authorization: Basic " & auth)  
  
    ' Postデータの書き込み  
    Dim reqStream As System.IO.Stream = webReq.GetRequestStream()  
    reqStream.Write(data, 0, data.Length)  
    reqStream.Close()  
  
    Dim strm As System.IO.Stream = Nothing  
    Dim webRes As HttpWebResponse = Nothing  
    Try  
        webRes = CType(webReq.GetResponse(), HttpWebResponse)  
        strm = webRes.GetResponseStream()  
    Catch ex As Exception  
        Throw ex  
    Finally  
        webRes.Close()  
  
        webRes = Nothing  
    End Try  
  
    Return strm  
End Function

2014/05/03追記

今となってはTwitterでBasic認証できなくなっているので使えないコードですが、.NET CFでVBを使っていてPOSTを投げたい時に参考にして頂けると嬉しいです。

関連記事

Windows Mobile(.NET Compact Framework)を使ってアプリ開発する際に逆引きとしてお使いください。