株式会社ライブキャストロゴ 株式会社ライブキャスト

ちょっと前のエントリになるのですが、gTranslatorにFacebookのウォールに投稿する機能を追加してみた(実装編)で、AndroidアプリからFacebookのウォールに投稿できる機能を実装しました。

当時は、FacebookのDialogを表示して、そのEditTextに投稿したい文章をデフォルト表示することができました。



ですが、同エントリのFacebookコメントに、DialogのEditTextに文章をデフォルト表示できなくなった現象が起きてる旨のメッセージをいただいておりました。
※ 長い間コメントに気付かずにおりまして、大変申し訳ありません。

当時は、以下のようなコードを書いていました。

				Bundle bundle = new Bundle();
				bundle.putString("message", text.getText().toString());

				facebook.dialog(main.this, "feed", bundle, new DialogListener() {

					public void onComplete(Bundle values) {

					}

					public void onFacebookError(FacebookError e) {

					}

					public void onError(DialogError e) {

					}

					public void onCancel() {

					}

				});

messageというパラメータに初期表示させたい文章を設定してDialogに渡す、というやり方をしているのですが、パラメータ名が変わったのでしょうか?

ということで、色々調べてみたところ、Feed Dialog – Facebook開発者の下の方に、以下の記述がありました。


This field will be ignored on July 12, 2011 The message to prefill the text field that the user will type in. To be compliant with Facebook Platform Policies, your application may only set this field if the user manually generated the content earlier in the workflow. Most applications should not set this.

なんと!Facebookのプラットフォームポリシーの変更により、このmessageプロパティは2011年7月12日から無効になっていたのです。

「このプロパティは使わないように」と書いてありますので、FacebookのDialogに任意の文字列を初期表示することはできなくなった、と考えてよいでしょう。

これでは使い勝手があまり良くないのでなんとかしたいところですが、自前のActivityを用意して他のAPIをコールする他に手段はなさそうです。

このやり方についても、もうちょっとじっくり調べてみたいと思います。進展ありましたら、ここであらためて報告したいと思います。