繁体   English   中英

AccessToken.getCurrentAccessToken()在Kotlin中始终返回null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM