我试图在我的应用上登录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>
任何人都可以帮助我吗?我不知道如何修复它......
非常感谢!