【发布时间】:2015-05-07 07:00:49
【问题描述】:
我一直在尝试获取 Twitter ParseUser 的个人资料图片。我使用 ParseTwitterUtils 允许用户登录我的应用程序,并尝试在注册我的解析数据库时获取他们的个人资料图片。
我使用了 Parse 文档中的以下内容:
ParseTwitterUtils.logIn(this, new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
if (user == null) {
Log.d("MyApp", "Uh oh. The user cancelled the Twitter login.");
} else if (user.isNew()) {
Log.d("MyApp", "User signed up and logged in through Twitter!");
ParseTwitterUtils.getTwitter().getUserId();
user.setUsername(ParseTwitterUtils.getTwitter()
.getScreenName());
user.saveInBackground();
makeTwitterRequest();
MyActivity();
} else {
Log.d("MyApp", "User logged in through Twitter!");
}
}
});
登录工作绝对正常,并且可以正常获取用户名。到目前为止,这是我尝试获取个人资料图片的 makeTwitterRequest() 方法。我还没有尝试将它存储到 Parse,只是使用 Twitter API 调用来获取它:
private void makeTwitterRequest() {
Twitter twitter = ParseTwitterUtils.getTwitter();
String twitterUrl = "https://api.twitter.com/1.1/users/show.json?user_id=" + twitter.getUserId();
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(twitterUrl);
twitter.signRequest(request);
try {
HttpResponse response = client.execute(request);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行此程序后,每当我点击 Twitter 登录按钮并登录时,在进行身份验证时,我都会收到错误消息:
03-05 19:06:56.076: E/AndroidHttpClient(15055): Leak found
03-05 19:06:56.076: E/AndroidHttpClient(15055): java.lang.IllegalStateException: AndroidHttpClient created and never closed
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.net.http.AndroidHttpClient.<init>(AndroidHttpClient.java:158)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.net.http.AndroidHttpClient.newInstance(AndroidHttpClient.java:144)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.twitter.Twitter.authorize(Twitter.java:115)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.TwitterAuthenticationProvider.authenticate(TwitterAuthenticationProvider.java:39)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.ParseUser.authenticateAsync(ParseUser.java:1482)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.ParseUser.logInWithAsync(ParseUser.java:1502)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.ParseUser.logInWithAsync(ParseUser.java:1291)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.ParseTwitterUtils.logInInBackground(ParseTwitterUtils.java:247)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.parse.ParseTwitterUtils.logIn(ParseTwitterUtils.java:264)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at <mypackagename>.SignUpOrLoginActivity.onTwitterLoginButtonClicked(SignUpOrLoginActivity.java:231)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at <mypackagename>.SignUpOrLoginActivity.access$2(SignUpOrLoginActivity.java:229)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at <mypackagename>.SignUpOrLoginActivity$5.onClick(SignUpOrLoginActivity.java:95)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.view.View.performClick(View.java:4756)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.view.View$PerformClick.run(View.java:19749)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.os.Handler.handleCallback(Handler.java:739)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.os.Handler.dispatchMessage(Handler.java:95)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.os.Looper.loop(Looper.java:135)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at android.app.ActivityThread.main(ActivityThread.java:5221)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at java.lang.reflect.Method.invoke(Native Method)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at java.lang.reflect.Method.invoke(Method.java:372)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-05 19:06:56.076: E/AndroidHttpClient(15055): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
我相信 Parse 应该通过登录过程自动解决这个问题,但是有人知道出了什么问题吗?非常感谢您的宝贵时间!
【问题讨论】:
标签: android twitter parse-platform