Twitter の Media 付き投稿 にトライ その3
うまくいかないので、 Twitter側の APIを疑ってみることにしました。
まず、 16x16 のGIF を送ります。
POST http://upload.twitter.com/1/statuses/update_with_media.xml HTTP/1.1 User-Agent: Mozilla/5.0 (Windows) Mo-Footer v0.8 Host: upload.twitter.com Accept: / Content-Type: application/x-www-form-urlencoded Content-Length: 730 media%5B%5D=GIF89a%10%00%10%00%B3%00%00%00%00%00%7F%00%00%00%7F%00%7F%7F%00%00%00%7F%7F%00%7F%00%7F%7F%7F%7F%7F%C0%C0%C0%FF%00%00%00%FF%00%FF%FF%00%00%00%FF%FF%00%FF%00%FF%FF%FF%FF%FF%21%F9%04%00%00%00%00%00%2C%00%00%00%00%10%00%10%00%00%04G%10H%20%AA%088%98m%26%B5%99%C6y%D6%95q%DDT%86h%E1%16G%7C%1041%DC%C3%0B%CB%B5%8D%EB%B2Y%0D%97%7B%05%7BDb%2FXR%D6%98%16%27%0DZ%91%12%A8%02TH%E7%D1f%B8%13%2F%06%2C%11%07%C8%80%08%00%3B&oauth_consumer_key=vqxwinNHu9l3Ki5Wp68A&oauth_nonce=bmaTlWMXnz4oz7h83OO2&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1314338112&oauth_token=47556511-oPvoix2exwzZxzKD6jRfJ9B8bLZuoTlHrK8r0gVfW&oauth_version=1.0&status=This%20is%20an%20image%20upload%20test.&oauth_signature=uHIYK8VYJBphhaZKa99Ou7muwA8%3DL |
エラーがかえってきました。
HTTP/1.1 401 Unauthorized <?xml version="1.0" encoding="UTF-8"?> <hash> <request>/1/statuses/update_with_media.xml</request> <error>Could not authenticate with OAuth.</error> </hash> |
GIFデータを少しいじります。
POST http://upload.twitter.com/1/statuses/update_with_media.xml HTTP/1.1 User-Agent: Mozilla/5.0 (Windows) Mo-Footer v0.8 Host: upload.twitter.com Accept: / Content-Type: application/x-www-form-urlencoded Content-Length: 729 media%5B%5D=GIF89a%10%00%10%00%B3%00%00%00%00%00%7F%00%00%00%7F%00%7F%7F%00%00%00%7F%7F%00%7F%00%7F%7F%7F%7F%7F%C0%C0%C0%FF%00%00%00%FF%00%FF%FF%00%00%00%FF%FF%00%FF%00%FF%FF%FF%FF%FF%21%F9%04%00%00%00%00%00%2C%00%00%00%00%10%00%10%00%00%04G%10H%20%AA%088%98m%26%B5%99Fy%D6%95q%3DT%86ha%16G%7C%1041%DC%C3%0B%CB%B5%8Dk%B2Y%0D%97%7B%05%7BDb%2FXR%D6%98%16%27%0DZ%91%12%A8%02THwQf%B8%13%2F%06%2C%11%07%C8%80%08%00%3B&oauth_consumer_key=vqxwinNHu9l3Ki5Wp68A&oauth_nonce=T7FGw4XBIFfMyvU5cd73qSdZZ&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1314338138&oauth_token=47556511-oPvoix2exwzZxzKD6jRfJ9B8bLZuoTlHrK8r0gVfW&oauth_version=1.0&status=This%20is%20an%20image%20upload%20test.&oauth_signature=Z3lZEZNl7ngoOsXef%2Fpm7Fb%2F4S4%3DL |
エラーメッセージが変わりました。
エラーですが、実は投稿に成功しています。
HTTP/1.1 404 Not Found
<?xml version="1.0" encoding="UTF-8"?> |
更にGIFデータをいじります。
POST http://upload.twitter.com/1/statuses/update_with_media.xml HTTP/1.1 User-Agent: Mozilla/5.0 (Windows) Mo-Footer v0.8 Host: upload.twitter.com Accept: / Content-Type: application/x-www-form-urlencoded Content-Length: 732 media%5B%5D=GIF89a%10%00%10%00%B3%00%00%00%00%00%7F%00%00%00%7F%00%7F%7F%00%00%00%7F%7F%00%7F%00%7F%7F%7F%7F%7F%C0%C0%C0%FF%00%00%00%FF%00%FF%FF%00%00%00%FF%FF%00%FF%00%FF%FF%FF%FF%FF%21%F9%04%00%00%00%00%00%2C%00%00%00%00%10%00%10%00%00%04G%10H%20%AA%088%98m%26%7F%99Fy%7F%95q%3DT%86ha%16G%7C%1041%DC%C3%0B%CB%7F%8Dk%7FY%0D%7F%7B%05%7BDb%2FXR%7F%7F%16%27%0DZ%91%12%A8%02THwQf%B8%13%2F%06%2C%11%07%C8%80%08%00%3B&oauth_consumer_key=vqxwinNHu9l3Ki5Wp68A&oauth_nonce=xak4cGmir5Io2ByhhpAytVfriJj6&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1314338854&oauth_token=47556511-oPvoix2exwzZxzKD6jRfJ9B8bLZuoTlHrK8r0gVfW&oauth_version=1.0&status=This%20is%20an%20image%20upload%20test.&oauth_signature=7kw%2FPktNk22gXgeO9BI14YF%2BPlk%3DL |
リクエストが、なんと通りました。
HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?> |
URLエンコードを復号して、サーバー側でUNICODE 文字配列に代入して処理しようとしているのではないかなと思うわけです。(あくまで推測ですが)
この方法での実装だと、どうも不安定ですね。
APIのバグみたいなので、直るまで待つのがよいのかも。
Comments