telenordigital / connect-android-sdk

Android SDK for CONNECT ID
https://telenordigital.github.io/id-docs.telenordigital.com/
Other
16 stars 14 forks source link

ConnectNotSignedInException - No user is signed in. accessToken=null #167

Closed XarBpeak closed 5 years ago

XarBpeak commented 5 years ago
   ```

at com.telenor.connect.id.ConnectIdService.getUserInfo(ConnectIdService.java) at com.telenor.connect.ConnectSdk.getUserInfo(ConnectSdk.java) at com.telenor.pakistan.mytelenor.xenonwidgets.data_twobytwo.connectDataVerify(data_twobytwo.java) at com.telenor.pakistan.mytelenor.xenonwidgets.data_twobytwo.updateAppWidget(data_twobytwo.java) at com.telenor.pakistan.mytelenor.xenonwidgets.data_twobytwo.onUpdate(data_twobytwo.java) at android.appwidget.AppWidgetProvider.onReceive(AppWidgetProvider.java:66) at com.telenor.pakistan.mytelenor.xenonwidgets.data_twobytwo.onReceive(data_twobytwo.java)


where connactDataVerify

private void connectDataVerify() {

    IdToken idToken = ConnectSdk.getIdToken();
    ConnectUserInfo connectUserInfo = ConnectUserInfo.getInstance();
    NetworkHeader networkHeader = NetworkHeader.getInstance();
    if (idToken != null) {

        String telNumber = String.valueOf(idToken.getAuthenticationUsername()); //"923455014979";
        String newNumber = telNumber.replaceFirst("92", "0");
        connectUserInfo.setMsisdn(newNumber);
        connectUserInfo.setSub(idToken.getSubject());

        //TODO: apply this when services is not available
        if (connectUserInfo != null && connectUserInfo.getMsisdn() != null) {

            WidgetUtils.connectUserInfo = connectUserInfo;
            onConsumeService();
        }
    } else {
        ConnectSdk.getUserInfo(new Callback<UserInfo>() {
            @Override
            public void onResponse(Call<UserInfo> call, Response<UserInfo> response) {
                //Log.d("ConnectUserInfo", connectUserInfo.toString());
                if (response.body() != null && response.body().getPhoneNumber() != null) {
                    try {
                        if (response.body().getPhoneNumber() != null) {
                            String telNumber = String.valueOf(response.body().getPhoneNumber()); //"923455014979";
                            String newNumber = telNumber.replace("92", "0");
                            connectUserInfo.setMsisdn(newNumber);

                            connectUserInfo.setSub(response.body().getSub());
                            WidgetUtils.connectUserInfo = connectUserInfo;
                            onConsumeService();

                        }
                    } catch (Exception ex) {
                        UtilsTelenor.logException(ex);

                    }
                }
            }

            @Override
            public void onFailure(Call<UserInfo> call, Throwable t) {
                try {
                } catch (Exception ex) {
                    UtilsTelenor.logException(ex);
                    //ex.printStackTrace();
                }
            }
        });

    }
}
SerhiiBovtriuk commented 5 years ago

Hello, @XarBpeak.

It looks like you are trying to access user data in case when idToken is null.

Did you check out examples at https://telenordigital.github.io/id-docs.telenordigital.com/integrate-android-sdk/access-user-information.html?

SerhiiBovtriuk commented 5 years ago

Been inactive for a month now. Moving issue to "wontfix" state.

In case if problem reappear, please, reopen the thread.