Facebook ログインを含む Android アプリケーションの開発に Facebook SDK 3.0 を使用しています。
Facebookを使用してログインするには、次のような関数を使用します。
public void login(final ProgressDialog dialog) {
Session.openActiveSession(this, true, new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state,
Exception exception) {
// TODO Auto-generated method stub
if (session.isOpened()) {
AppSettings.facebookAuthToken = session.getAccessToken();
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,
Response response) {
// TODO Auto-generated method stub
if (user != null) {
Log.e("gavau", "kazka");
Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
RequestParams a = new RequestParams();
// a.put("foo", "bar");
a.put("tz",
""
+ (tz.getRawOffset() + tz
.getDSTSavings())
/ 1000);
a.put("fb_id", user.getId());
a.put("fb_authkey",
AppSettings.facebookAuthToken);
Log.e("siunciu", a.toString());
AppSettings.facebookId = user.getId();
NetworkClient.receiveJSON("register/",
a,
new AsyncHttpResponseHandler() {
@Override
public void onSuccess(
String a) {
Log.e("gavau", a);
if (a.equals("0")) {
Toast.makeText(
getApplicationContext(),
"Hi, everything's OK!",
0).show();
AppSettings.logged = true;
onLogin(dialog);
}
else
Toast.makeText(
getApplicationContext(),
"bėda " + a,
Toast.LENGTH_SHORT);
}
});
} else {
Toast.makeText(getApplicationContext(),
" User is equal to NULL!", 0)
.show();
}
}
});
} else {
Toast.makeText(getApplicationContext(),
"Session is not opened", 1).show();
}
}
});
}
アプリケーションの開発中はすべて正常に動作しますが、アプリケーションをエクスポートした後、Facebook ログインが機能しなくなり ( 「セッションが開かれていません」とトーストされました)、Facebook ログイン ダイアログが表示されません。 Eclipse を使用して携帯電話でプロジェクトを実行すると、すべて問題ありません。次に、このアプリケーションのすべてのコンテンツを削除し、.apk ファイルを使用してプロジェクトをインストールします。アプリを起動すると、Facebook ログインが機能しません。
プロジェクトを Android アプリケーションとしてエクスポートします。最初は debug.keystore を既存のキーストアとして使用しようとしましたが、機能せず、新しいキーストアを作成しようとしましたが、これも機能しませんでした。
キーハッシュを取得しようとしましたが、役に立ちませんでした。
この問題の理由と解決方法を説明できる人はいますか?