Twitter REST APIで特定の文字で投稿に失敗する
Twitter連携を行い、自動投稿を行うアプリを開発しています。
アプリ自体は完成したのですが、
Twitter REST API で特定の文字を含む文言を投稿しようとすると、
"code":32,"message":"Could not authenticate you."
というエラーとなってしまいます。
特定文字が含まれない文章の場合はエラーにならず、正常に投稿されます。
自作アプリが異常なのかと思い、Twitterオフィシャルのtwurlを利用して投稿してみても、やはり同様のエラーとなります。
今のところ、NGとなっている単語は`や^などです。
具体的にエラーになるtwurlの実行時のコマンドは以下の通りです。
twurl -t -X POST -d 'status=(*´∀`)♪(o)v( ^∀^)( ^∀^)(´∇`)' /1.1/statuses/update.json
Twitterのオフィシャルドキュメントを読んでも特に文字種制限については触れられていませんし、投稿時のPOSTをトレースすると正常にURLエンコードされて送信されているように見えます。
TwitterのWebから上記文言を投稿すると正常に投稿できるので、NG文言ではないとは思います。
投稿文字列をUTF-8の\u28\u2A ... のように数値参照にするなどいろいろ試してみたものの、うまくいきませんでした。
こちら、上記のような特殊文字でも正常に投稿される方法をご存知の方がいらっしゃたら、ご教授いただけないでしょうか?
■■■追記■■■
ご質問いただいたので、再現環境について補足いたします。
■自作アプリ
・開発環境:Untiy2018.1.5f
・開発言語:C#
・再現環境:UnityEditor上、Windows、iPhone、Androidいずれの環境でも再現します
・投稿コード抜粋(おおよその流れで実際のコードとは異なります)
WWWForm form = new WWWForm();
form.AddField("status", "(*´∀`)♪(o)v( ^∀^)( ^∀^)(´∇`)");
UnityWebRequest request = UnityWebRequest.Post("https://api.twitter.com/1.1/statuses/update.json", form);
request.SetRequestHeader("ContentType", "application/x-www-form-urlencoded");
request.SetRequestHeader("Authorization", Oauth.GenerateHeaderWithAccessToken("/1.1/statuses/update.json"));
yield return request.SendWebRequest();
■twurl
・再現環境:CentOS release 6.6 (Final)、ruby 2.2.0p0、twurl 0.9.3
・LANG環境変数:ja_JP.UTF-8
・再現コード(最初の投稿の記載の通りです)
twurl -t -X POST -d 'status=(*´∀`)♪(o)v( ^∀^)( ^∀^)(´∇`)' /1.1/statuses/update.json
twurlでも再現するので、自作アプリの再現環境・コードについては不要かと思っておりました。
失礼いたしました。
他にも必要な情報がございましたらご指摘ください。