gpt4 book ai didi

java - 无法使用 SDK 打开 Facebook session

转载 作者:行者123 更新时间:2023-12-01 13:42:25 26 4
gpt4 key购买 nike

我正在尝试在 Facebook 墙上发布消息,以下是我的代码示例:

 @Click (R.id.img_btn_facebook)
@UiThread
public void fbPostWall(){

Session session = Session.getActiveSession();
SessionState state = SessionState.OPENING;

if (session == null)
TestManager.getInstance().setActivity(getActivity()).setLoginListener(this).facebookLogin();

Log.e("SESSION-STATUS", "" + session.getState());

if (session != null || state.isOpened()){

Log.e("FACEBOOK", "post link on the wall ...");
Bundle params = new Bundle();
params.putString("name", "This is a test");

WebDialog feedDialog = (
new WebDialog.FeedDialogBuilder(getActivity(),
session,
params))
.setOnCompleteListener(new WebDialog.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(getActivity(),
"Posted story, id: "+postId,
Toast.LENGTH_SHORT).show();
} else {
// User clicked the Cancel button
Toast.makeText(getActivity().getApplicationContext(),
"Publish cancelled",
Toast.LENGTH_SHORT).show();
}
} else if (error instanceof FacebookOperationCanceledException) {
// User clicked the "x" button
Toast.makeText(getActivity().getApplicationContext(),
"Publish cancelled",
Toast.LENGTH_SHORT).show();
} else {
// Generic, ex: network error
Toast.makeText(getActivity().getApplicationContext(),
"Error posting story",
Toast.LENGTH_SHORT).show();
}
}
})
.build();
feedDialog.show();
}
}

当我单击“img_btn_facebook”按钮时,如果用户尚未使用 Facebook,则会打开登录 session 。之后,Log.e("SESSION-STATUS", ""+ session.getState());始终给出 SESSION-STATUS:OPENING 但重点是我总是从 Facebook SDK 收到此错误消息:com.facebook.FacebookException:尝试使用未打开的 session 。

有人可以帮我解决这个问题吗?我想在我的 Facebook 墙上发布一条消息,感谢我的 Android 应用程序。

最佳答案

您是否包含了 onActivityResult ?

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
}

在你的 list 文件中

<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />

确保您的 Facebook 应用程序中具有正确的哈希键值

要生成哈希 key ,请在主要 Activity 中包含以下代码行

try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.hellofacebook",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {

} catch (NoSuchAlgorithmException e) {

}

您将在控制台中获得哈希 key ,将该 key 包含在 facebook devleopr 中

关于java - 无法使用 SDK 打开 Facebook session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20612982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com