Facebook SDK を Android に統合するときに問題が発生しました。基本的に、私は自分の電話にうまく統合しました。チュートリアルに従って、長さ 30 の文字列のハッシュ キーを追加しました。次に、デバイスでテストすると正常に動作します。
しかし、友人に私のアプリを試すように頼んだとき、彼は Facebook のものを共有することで何もできないと報告しました。共有を行うためのコードのチャンクは次のとおりです。
/**
* Publish Feed Dialog
* @param current
* @param title
* @param caption
* @param description
* @param link
* @param pictureUrl
*/
public static void publishFeedDialog(final Activity current, final String title, final String caption, final String description, final String link, final String pictureUrl) {
// start Facebook Login
Session.openActiveSession(current, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Bundle params = new Bundle();
params.putString("name", title);
params.putString("caption", caption);
params.putString("description", description);
if (link != null) params.putString("link", link);
if (pictureUrl != null) params.putString("picture", pictureUrl);
WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(current, Session.getActiveSession(), params))
.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(Bundle values, FacebookException error) {
if (error == null) {
// When the story is posted, echo the
// success
// and the post Id.
final String postId = values.getString("post_id");
if (postId != null) {
Toast.makeText(current, "Posted", 2000).show();
} else {
// User clicked the Cancel button
Toast.makeText(current, "Publish cancelled", 2000).show();
}
} else if (error instanceof FacebookOperationCanceledException) {
// User clicked the "x" button
Toast.makeText(current, "Publish cancelled", 2000).show();
} else {
// Generic, ex: network error
Toast.makeText(current, "Error posting story", 2000).show();
}
}
}).build();
feedDialog.show();
}
}
});
}
このコードのチャンクのみを使用して、フィード ダイアログを公開します。Facebook アプリの設定の場合:
- パッケージ名 -> com.ImranQureshi.HadithPro
- クラス名 -> com.imran.hadith.MainActivity
- キー ハッシュ -> t8tk8tRXcAXxnn4U0mRcCBSqHf
- Facebook ログイン -> 有効
- ディープリンク -> 無効
キー ハッシュを使用しないと、そこで例外が発生します。com.facebook.http.protocol.ApiException: キー ハッシュ t8tk8tRXcAXxnn4U0mRcCBSqHf は、保存されているキー ハッシュと一致しません
ハッシュが存在しないため、これは理にかなっています。そのハッシュキーを入れると、実際のデバイスでは機能しますが、友人のデバイスでは機能しません。何が悪いのかアドバイスいただけますか?