【问题标题】:How to get access token in social auth in android and how to reuse them如何在android的社交身份验证中获取访问令牌以及如何重用它们
【发布时间】:2015-05-14 11:50:13
【问题描述】:

我知道这个问题已经被问到并得到了回答,但这对我没有帮助。我正在通过使用社交身份验证库来集成 Facebook 和 Twitter 等少数社交应用程序。我已经通过以下代码成功实现了它们:

public class SignUp extends Activity implements OnClickListener {
private EditText email_mEditText,password_mEditText;
SocialAuthAdapter socialAuthAdapter;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sign_up);
    socialAuthAdapter = new SocialAuthAdapter(new ResponseListener());
    socialAuthAdapter.authorize(SignUp.this, Provider.FACEBOOK);
    socialAuthAdapter.signOut(this, Provider.FACEBOOK.toString());

使用此代码,我可以打开 Facebook 进行授权,但我想获取访问令牌。我尝试使用以下代码在我的活动中获取访问令牌:

    socialAuthAdapter.getCurrentProvider().getAccessGrant().getKey();

但是,这会使应用程序崩溃并显示NullPointerException

03-12 16:14:37.278: E/AndroidRuntime(19405): FATAL EXCEPTION: main 03-12 16:14:37.278: E/AndroidRuntime(19405): Process: com.technearby.app.main, PID: 19405 03-12 16:14:37.278: E/AndroidRuntime(19405): java.lang.NullPointerException 03-12 16:14:37.278: E/AndroidRuntime(19405): at com.technearby.app.main.SignUp.onClick(SignUp.java:107) 03-12 16:14:37.278: E/AndroidRuntime(19405): at android.view.View.performClick(View.java:4438) 03-12 16:14:37.278: E/AndroidRuntime(19405): at android.view.View$PerformClick.run(View.java:18422) 03-12 16:14:37.278: E/AndroidRuntime(19405): at android.os.Handler.handleCallback(Handler.java:733) 03-12 16:14:37.278: E/AndroidRuntime(19405): at android.os.Handler.dispatchMessage(Handler.java:95) 03-12 16:14:37.278: E/AndroidRuntime(19405): at android.os.Looper.loop(Looper.java:136) 03-12 16:14:37.278: E/AndroidRuntime(19405): at android.app.ActivityThread.main(ActivityThread.java:5001) 03-12 16:14:37.278: E/AndroidRuntime(19405): at java.lang.reflect.Method.invokeNative(Native Method) 03-12 16:14:37.278: E/AndroidRuntime(19405): at java.lang.reflect.Method.invoke(Method.java:515) 03-12 16:14:37.278: E/AndroidRuntime(19405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 03-12 16:14:37.278: E/AndroidRuntime(19405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 03-12 16:14:37.278: E/AndroidRuntime(19405): at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 您能否将例外添加到您的问题中?只有这样我们才能知道它指向什么。
  • @Shishdem 03-12 16:14:37.278: E/AndroidRuntime(19405): java.lang.NullPointerException
  • 整个堆栈跟踪会很好,现在我们仍然看不到异常指向什么。 EG 什么是“空”。
  • getCurrentProvider() 为空 @Shishdem
  • @Shishdem 请检查异常..我在点击按钮上调用此代码

标签: android integration socialauth


【解决方案1】:

您必须自己将提供程序添加到适配器。例如,adapter.addProvider(Provider.FACEBOOK, R.drawable.facebook);

【讨论】:

    猜你喜欢
    • 2014-05-11
    • 2015-04-16
    • 2012-11-14
    • 2018-11-07
    • 2016-08-23
    • 1970-01-01
    • 2019-09-10
    • 2019-09-16
    • 1970-01-01
    相关资源
    最近更新 更多