Проверка подлинности Android для Linkedin getToken возвращает {"expiresOn": 0} - PullRequest
0 голосов
/ 05 февраля 2019

Я пишу приложение для Android (Java), чтобы получить профиль LinkedIn аутентифицированного пользователя.Я регистрирую свое приложение и следую инструкциям.В режиме отладки я вошел в метод onAuthSuccess () - поэтому аутентификация прошла успешно, но

LISessionManager.getInstance (getApplicationContext ()). GetSession (). GetAccessToken (). ToString () возвращает {"expiresOn": 0} .

Помогите решить проблему с получением токена.

    import android.annotation.SuppressLint;
    import android.content.Intent;
    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.content.pm.Signature;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Base64;
    import android.util.Log;
    import android.view.View;

    import com.linkedin.platform.LISession;
    import com.linkedin.platform.LISessionManager;
    import com.linkedin.platform.errors.LIAuthError;
    import com.linkedin.platform.listeners.AuthListener;
    import com.linkedin.platform.utils.Scope;

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;

    public class MainActivity extends AppCompatActivity {


        private static final String TAG = MainActivity.class.getSimpleName();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //getPackageHash();
            setContentView(R.layout.activity_main);
        }

        public void login(View view){
            //login activity

            LISessionManager.getInstance(getApplicationContext()).init(this, buildScope(), new AuthListener() {
                @Override
                public void onAuthSuccess() {
                    //Do something if successful for example get a token id...
                    //now get user's details if success in next page

                    Intent intent = new Intent(MainActivity.this,Home.class);
                    intent.putExtra("value", LISessionManager.getInstance(getApplicationContext()).getSession().getAccessToken().toString());

                    //passing access token id to home page
                    //and now launch new activity
                    startActivity(intent);
                }

                @Override
                public void onAuthError(LIAuthError error) {
                    //Do something if error appears
                    System.out.println(error.toString());
                }
            },true);
        }

        // set the permission first to retrieve basic information of user's LinkedIn account
        private static Scope buildScope(){
            return Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS);
        }


        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            LISessionManager.getInstance(getApplicationContext()).onActivityResult(this, requestCode, resultCode, data);
        }

        private  void getPackageHash() {
            try {

                @SuppressLint("PackageManagerGetSignatures") PackageInfo info = getPackageManager().getPackageInfo(
                        "com.android_linkedin_integration_demo",

//give your package name here

                        PackageManager.GET_SIGNATURES);
                for (Signature signature : info.signatures) {
                    MessageDigest md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());

                    Log.d(TAG, "Hash  : " + Base64.encodeToString(md.digest(), Base64.NO_WRAP));//Key hash is printing in Log
                }
            } catch (PackageManager.NameNotFoundException e) {
                Log.d(TAG, e.getMessage(), e);
            } catch (NoSuchAlgorithmException e) {
                Log.d(TAG, e.getMessage(), e);
            }
        }
    }
...