这是将 Twitter 集成到 android 中的正确方法吗?谁能告诉我如何获取个人资料图片网址?

Posted

技术标签:

【中文标题】这是将 Twitter 集成到 android 中的正确方法吗?谁能告诉我如何获取个人资料图片网址?【英文标题】:Is this the right way of integrating Twitter in android? Can anyone tell how can I get Profile Image URL? 【发布时间】:2016-06-10 06:05:35 【问题描述】:

我正在尝试从 Twitter 获取个人资料图片,我不知道我需要调用什么方法来获取授权该应用程序的人的个人资料图片的网址,这是我的代码:MainActivity.class

public class MainActivity extends AppCompatActivity 

        private static final String TWITTER_KEY = "TWITTER_KEY";
        private static final String TWITTER_SECRET = "TWITTER_SECRET";
        private TwitterLoginButton loginButton;
        private long TwitterID;


        @Override
        protected void onCreate(Bundle savedInstanceState) 
            super.onCreate(savedInstanceState);
            TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
            Fabric.with(this, new Twitter(authConfig));
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            loginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
            loginButton.setCallback(new Callback<TwitterSession>() 
                @Override
                public void success(Result<TwitterSession> result) Twitter.getInstance().core.getSessionManager().getActiveSession()
                    TwitterSession session = result.data;
                    TwitterID = session.getId();
                    String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")" + "\nid = " + TwitterID;
                    Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
                

                @Override
                public void failure(TwitterException exception) 
                    Toast.makeText(getApplicationContext(), "Keep it up rest is piece of Cake", Toast.LENGTH_LONG).show();
                
            );

        

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) 
            super.onActivityResult(requestCode, resultCode, data);
            loginButton.onActivityResult(requestCode, resultCode, data);
        
    

应该添加什么代码来获取个人资料图片网址?另外,请务必告知这是否是添加 twitter 登录的正确方法。

【问题讨论】:

如果您想整合多个社交网络,也可以使用第三方库(github.com/3pillarlabs/socialauth) 我只需要集成 Twitter 【参考方案1】:

我不能说关于实现的任何最终结果,显然它很好,但这实际上取决于您的要求和应用程序运行环境。如果您正确地关注了documentation,并且它在具有不同帐户的少数设备上运行良好,那么它绝对没问题。

对于头像,正如documentation 所说:

您可以从GET users/show 获取用户最近的个人资料图片,以及构成其在 Twitter 上的身份的其他组件。在 user object 中,您会找到 profile_image_url 和 profile_image_url_https 字段。这些字段将包含用户上传图像的调整大小的“正常”变体。这种“正常”变体通常为 48 x 48 像素。

我相信这是获取用户详细信息的正确方法。但或者,如果您不想获取用户详细信息并保持简单,您可以使用更简单的方法来获取个人资料图片。 (我不能保证 Twitter 会支持多长时间,但是是的,它还可以完美运行 :))

https://twitter.com/[username]/profile_image?size=original

其中username 是用户的Twitter 用户名,您可以通过在success 方法com.twitter.sdk.android.core.Callback&lt;TwitterSession&gt; 中调用session.getUserName() 来获取用户名

【讨论】:

以上是关于这是将 Twitter 集成到 android 中的正确方法吗?谁能告诉我如何获取个人资料图片网址?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 Facebook、Twitter 等的情况下将社交功能集成到 iOS 和/或 Android 应用程序中?

android 应用上的 twitter 集成

使用 oauth 和 twitter4j 集成 Android Twitter

将 Facebook、twitter、google plus 集成到另一个应用程序中

将 Twitter API 集成到 iPhone 应用程序中会出现错误

android集成twitter登录