当我尝试使用twitter sdk登录时,Twitter无效的json

时间:2018-02-28 08:36:57

标签: android json twitter login

我试图在我的应用上登录Twitter,但我一直都有同样的错误

我在stackoverflow上搜索一些解决方案,但没有人帮助我......我在下面发布我的代码:

主要活动:

public class MainActivity extends AppCompatActivity {

LoginButton loginButtonFacebook;

TwitterLoginButton loginButtonTwitter;

PrefUtil prefUtil;

TextView txtEmailFacebook, txtUserNameTwitter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Twitter.initialize(this);

    setContentView(R.layout.activity_main);

    txtUserNameTwitter = (TextView) findViewById(R.id.txtUserNameTwitter);

    loginButtonTwitter = (TwitterLoginButton) findViewById(R.id.login_button_twitter);
    loginButtonTwitter.setCallback(new Callback<TwitterSession>() {
        @Override
        public void success(Result<TwitterSession> result) {
            // Do something with result, which provides a TwitterSession for making API calls
            Log.e("result", "result " + result);
            TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient();
            AccountService accountService = twitterApiClient.getAccountService();
            Call<User> call = accountService.verifyCredentials(true, true, true);
            call.enqueue(new Callback<com.twitter.sdk.android.core.models.User>() {
                @Override
                public void success(Result<com.twitter.sdk.android.core.models.User> result) {
                    //here we go User details
                    Log.e("result", "result user " + result);
                    String imageUrl = result.data.profileImageUrl;
                    String email = result.data.email;
                    String userName = result.data.name;
                    txtUserNameTwitter.setText(userName);
                }
                @Override
                public void failure(TwitterException exception) {
                    Toast.makeText(getApplicationContext(),"Twitter login attempt failed.", Toast.LENGTH_LONG).show();
                    exception.printStackTrace();
                }
            });
        }
        @Override
        public void failure(TwitterException exception) {
            // Do something on failure
            exception.printStackTrace();
        }
    });       
}
}

我的strings.xml文件:

 <resources xmlns:android="http://schemas.android.com/tools">
 <string name="app_name">AppsLogin</string>
 <string name="com.twitter.sdk.android.CONSUMER_KEY">XXXXXXX</string>
 <string name="com.twitter.sdk.android.CONSUMER_SECRET">XXXXXX</string>
 </resources>

我的bouild.gradle(模块:app)依赖项:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
implementation 'com.facebook.android:facebook-login:[4,5)'
compile 'com.twitter.sdk.android:twitter-core:3.1.0'
compile 'com.twitter.sdk.android:tweet-ui:3.1.0'
compile 'com.twitter.sdk.android:tweet-composer:3.1.0'
compile 'com.twitter.sdk.android:twitter-mopub:3.1.0'
}

我的build.gradle(Project:AppsLogin):

buildscript {

repositories {
    google()
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    google()
    jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

当我点击Twitter按钮时,它给了我这个例外:

E/Twitter: Invalid json: <?xml version="1.0" encoding="UTF-8"?>
       <hash>
         <error>Desktop applications only support the oauth_callback value 'oob'</error>
         <request>/oauth/request_token</request>
       </hash>

任何人都可以帮助我吗?我不知道如何修复它......

非常感谢!

0 个答案:

没有答案