AndroidSDKを使用してリンクを投稿しようとしています。
投稿アンカーをクリックしても、新しいブラウザウィンドウは開きません。代わりに、現在のタブ(Facebookプロファイル/ニュースフィード)が使用されます。これにより、ユーザーは自分のFacebookブラウザタブを失うことになります。
これは、意図した動作とは思えません。他のアプリケーション(youtube、NewYorkTimes)は、新しいタブを開きます。私のアプリのサイトURLとキャンバスURLの両方が、フィードのリンク属性が指す同じURLに設定されていることは、何らかの形で関連している可能性があります。
アンカーのソースを確認すると、target='_blank'
HTML属性が不足していることがわかります(YouTubeのビデオ投稿にはその属性があります)。
編集:
たぶん私は自分自身を明確にしていませんでした...ここでの問題は、ユーザーの壁にフィードを投稿する段階ではありません。この問題は、フィードダイアログを使用して投稿が成功した後、ユーザーのウォールでその投稿(投稿の添付画像またはリンク)をクリックした場合にのみ発生します。そうすると、現在のブラウザタブにあるリンクのアドレス(Facebookから)にリダイレクトされます。
編集2:
私は他の誰かのコードを使用しています。それはCordova(Phonegap)facebookプラグインです。
@ Malione、私が使用している完全なコードはhttps://github.com/mgcrea/cordova-facebook-connectにあります。
関連する関数(の下にあるsrc\com\facebook\android\Facebook.java
)である可能性のある1つの関数をコピーして貼り付け、役立つ可能性のある2つのログ行を追加しました。
/**
* Cordova interface to display a dialog
*/
public PluginResult dialog(final JSONArray args, final String callbackId) throws JSONException, FileNotFoundException, MalformedURLException, IOException {
Log.d(CLASS, "dialog() :" + args.toString());
JSONObject params = args.getJSONObject(0);
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
final String method = params.has("method") ? params.getString("method") : "feed";
JSONObject optionsObject = (JSONObject)params.get("params");
final Bundle options = new Bundle();
Iterator<?> keys = optionsObject.keys();
while( keys.hasNext() ){
String key = (String)keys.next();
options.putString(key, optionsObject.getString(key));
//if(optionsObject.get(key) instanceof JSONObject)
}
final FacebookConnect me = this;
Runnable runnable = new Runnable() {
public void run() {
Log.d("Roei ------->>>>>>>Dialog options:", options.toString());
Log.d("Roei ------->>>>>>>Dialog context:", me.cordova.getContext().toString() );
me.getFacebook().dialog(me.cordova.getContext(), method, options, new RegularDialogListener(me, callbackId));
};
};
pluginResult.setKeepCallback(true);
this.cordova.getActivity().runOnUiThread(runnable);
return pluginResult;
}
そして、これはログファイルの出力です:
08-28 20:21:18.015: D/CordovaLog(25340): picture: https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg
08-28 20:21:18.015: D/CordovaLog(25340): : Line 1172087949 : picture: https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg
08-28 20:21:18.015: I/Web Console(25340): picture: https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg at :1172087949
08-28 20:21:18.025: D/dalvikvm(25340): GC_CONCURRENT freed 395K, 49% free 3328K/6471K, external 598K/1065K, paused 6ms+3ms
08-28 20:21:18.035: D/FacebookConnect(25340): dialog() :[{"method":"feed","params":{"picture":"https:\/\/surf-space.com\/wp-content\/uploads\/spots\/user_reports\/default\/surf-report.jpg",
"method":"feed","description":"Wave height: 1.3 Meters<center \/>Surf conditions: Fine<center \/>","link":"https:\/\/surf-space.com\/spots\/israel\/","name":"Roei Bahumi posted a surf report for: Neurim, Netanya"}}]
08-28 20:21:18.035: D/Roei ------->>>>>>>Dialog options:(25340): Bundle[{picture=https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg, method=feed, description=Wave height: 1.3
Meters<center />Surf conditions: Fine<center />, name=Roei Bahumi posted a surf report for: Neurim, Netanya, link=https://surf-space.com/spots/israel/}]
08-28 20:21:18.035: D/DroidGap(25340): This will be deprecated December 2012
08-28 20:21:18.035: D/Roei ------->>>>>>>Dialog context:(25340): com.surf_space.surf_space4.MainActivity@405eb938
08-28 20:21:18.035: D/DroidGap(25340): This will be deprecated December 2012
08-28 20:21:19.897: W/InputManagerService(171): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40a82a20
08-28 20:21:28.125: D/FacebookConnect(25340): RegularDialogListener::onComplete() Bundle[{post_id=839443974_490613954283080}]
08-28 20:21:28.155: D/CordovaLog(25340): FacebookConnect.dialog:{"post_id":"839443974_490613954283080"}
08-28 20:21:28.155: D/CordovaLog(25340): : Line 1172088957 : FacebookConnect.dialog:{"post_id":"839443974_490613954283080"}
08-28 20:21:28.155: I/Web Console(25340): FacebookConnect.dialog:{"post_id":"839443974_490613954283080"} at :1172088957
これはあなたが話していたコードの一部ですか?Facebookに送信されたデータに何か足りないものがありますか?
そうでない場合は、設定方法を説明しているFacebook Android SDKのドキュメントページに移動してください。また、そのようtarget='_blank'
なリクエストの例を示してもらえますか。感謝します(コードで何を探すべきかについてもわかります)。