[英]AccessToken.getCurrentAccessToken() always returns null in Kotlin
我在Kotlin中使用Facebook SDK。 当我尝试使用FB共享侦听器时, AccessToken.getCurrentAccessToken()
返回null。 我尝试了FacebookSdk.sdkInitialize(this)
但已经弃用了。 我怎么解决这个问题
fun SetFacebookShareListener(sd: ShareDialog) {
sd.registerCallback(mCallbackManagerFacebook, object : FacebookCallback<Sharer.Result> {
override fun onSuccess(result: Sharer.Result) {
// Toast.makeText(DetailsFragment.this.getActivity(), "You shared this post", Toast.LENGTH_SHORT).show();
val builder1 = android.app.AlertDialog.Builder(this@MainActivity)
val activeSession = AccessToken.getCurrentAccessToken()
if (activeSession == null) {
builder1.setMessage("Do you want us to Connect to your account with facebook?")
} else if (!activeSession.permissions.contains("publish_actions")) {
builder1.setMessage("Do you want us to automatically post your reward details at your facebook timeline?")
}
builder1.setPositiveButton("Yes") { dialog, which ->
// TODO Auto-generated method stub
this@MainActivity.ConnectWithFacebook()
}
builder1.setNegativeButton("No") { dialog, which ->
// TODO Auto-generated method stub
// Toast.makeText(getApplicationContext(), "test1", Toast.LENGTH_LONG).show();
}
val alert = builder1.create()
alert.show()
}
override fun onCancel() {
Toast.makeText(applicationContext, "test2", Toast.LENGTH_LONG).show()
}
override fun onError(e: FacebookException) {
// Toast.makeText(getApplicationContext(), "test3", Toast.LENGTH_LONG).show();
e.printStackTrace()
}
})
}
和与Facebook连接是
fun ConnectWithFacebook() {
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email", "user_birthday"))
}
LoginManager返回的访问令牌将保存在共享的首选项中,因此,下次打开应用程序时,AccessToken.getCurrentAccessToken()应该具有相同的访问令牌。 您可以查看SDK随附的示例,以查看它们是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.