【问题标题】:Using Twitters API in Android with a Parse.com backend在带有 Parse.com 后端的 Android 中使用 Twitters API
【发布时间】:2014-12-04 19:14:27
【问题描述】:

我正在尝试在我的 Android 应用程序上使用 Parse.com 来通过 Twitter 对我的用户进行身份验证。

基本上,我有一个“在 Twitter 上注册”按钮。当用户按下它时,Twitter 对话框打开,他注册了。下面是 Register With Twitter 按钮的 onClick() 函数:

public void registerTwitter(View view)
{
    ParseTwitterUtils.logIn(this, new LogInCallback() {
          @Override
          public void done(ParseUser user, ParseException err) {
            if (user == null) {
                               //do something else, User quit the dialog
            } 
            else if (user.isNew()) 
            {
                Intent i=new Intent(getApplicationContext(),Welcome.class);
                startActivity(i);
            } 
            else 
            {
                //User already exists, do something else
            }
          }
        });
}

在这里,代码正在运行,并且按预期在后面创建了一个 ParseUser。但是,问题是:如何从 Twitter API 获取其他公共数据以添加到我的 ParseUser 对象?像名字,姓氏,图像,电子邮件等?

我在后端得到的只是“用户名”字段中的一个数字,以及来自 Twitter 的 authData 对象

任何帮助将不胜感激!谢谢

【问题讨论】:

  • logcat 崩溃后出现什么错误? Logcat 应该始终是您尝试诊断运行时错误的起点。实际上,如果您阅读错误堆栈并尝试理解它,您可能能够在 90% 的时间里自己修复错误,方法是转到日志指向的行号进入听起来熟悉的文件名给你,因为它们是你项目的一部分。至于你的其他问题,我无法真正回答,因为我对 parse.com 不够熟悉
  • 实际上,我能够修复崩溃。主要问题是从 Twitter API 获取数据

标签: android twitter parse-platform


【解决方案1】:

TwitterInfo twitterInfo = null;
		Twitter twitter = ParseTwitterUtils.getTwitter();
		String twitterUrl = "https://api.twitter.com/1.1/users/show.json?user_id=" + twitter.getUserId();

		HttpUriRequest request = new HttpGet(twitterUrl);
		twitter.signRequest(request);

		HttpClient client = new DefaultHttpClient();

		try
		{
			HttpResponse response = client.execute(request);
			BufferedReader input = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

			String result = input.readLine();
			Log.d(TAG, "getTwitterInfo: result=" + result);

			JSONObject JsonResponse = new JSONObject(result);

			String profileImageUrl = JsonResponse.getString("profile_image_url");
			String fullName = JsonResponse.getString("name");

			twitterInfo = new TwitterInfo(fullName, profileImageUrl);

			return twitterInfo;

		}
		catch(ClientProtocolException e)
		{
			throw new CamoPhotoException(e.getMessage());
		}
		catch(IOException e)
		{
			throw new CamoPhotoException(e.getMessage());

		}
		catch(JSONException e)
		{
			throw new CamoPhotoException(e.getMessage());

		}

【讨论】:

    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 2016-03-20
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多