Android 如何在不让用户登录结构的情况下获取 public 推文
Android How to get the public tweets with out making user login in fabrics
我知道这个问题已经有人问过了。我已经阅读了 twitter 面料 sdk。和它的 Auth 但我对它的理解很愚蠢。所以下面是我想要的关键点
我想要什么
我想让所有的推文都基于散列标签,下面是我想要在移动设备上的示例 Tweets on #Wwe
我希望我的用户不必登录 his/her 推特帐户。他只是在我的应用程序中看到推文列表并让他自我更新。
我已经学习了很多教程,但它们对我没有帮助,我还阅读了如何从 here 和其他一些 link 获取推文。
请告诉我我需要哪个授权?
以及如何做所有这些事情。好 link 没有 twitter 登录吗??
首先您需要使用您的 Twitter 应用程序的密钥和密码初始化 Fabric:
public void initFabric(Context context){
if(!Fabric.isInitialized()) {
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(context, new Twitter(authConfig));
}else{
Log.d(TAG, "Fabric already initialized");
}
}
请记住妥善保管您的密钥和秘密。
然后您可以通过以下方式按帐户和主题标签检索推文:
public static TweetTimelineListAdapter retrieveTimeLineByHashtag(Context context, String hashtag){
Log.d(TAG, "Loading tweets with hashtag " + hashtag);
SearchTimeline searchTimeline = new SearchTimeline.Builder().query(hashtag).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(searchTimeline).build();
}
public static TweetTimelineListAdapter retrieveTimeLineByAccount(Context context, String account){
Log.d(TAG, "Loading tweets from user " + account);
UserTimeline userTimeline = new UserTimeline.Builder().screenName(account).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(userTimeline).build();
}
另请注意,SearchTimeline 仅搜索包含您的搜索词的最新推文,因此您会发现未返回任何推文。但是,我找不到更好的方法来使用 Fabric 通过 Hashtag 获取推文。
编辑:
public class Prueba extends AppCompatActivity {
private static final String TAG = "TWITTER_PRUEBA";
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prueba);
bindUI();
initFabric(getApplicationContext());
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
TweetTimelineListAdapter adapter = retrieveTimeLineByHashtag(this, "#Wwe");
listView.setAdapter(adapter);
}
private void bindUI(){
listView = (ListView) findViewById(R.id.prueba);
}
public static void initFabric(Context context){
Log.d(TAG, "Initializing Fabric");
if(!Fabric.isInitialized()) {
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(context, new Twitter(authConfig));
}else{
Log.d(TAG, "Fabric already initialized");
}
}
public static TweetTimelineListAdapter retrieveTimeLineByHashtag(Context context, String hashtag){
Log.d(TAG, "Loading tweets with hashtag " + hashtag);
SearchTimeline searchTimeline = new SearchTimeline.Builder().query(hashtag).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(searchTimeline).build();
}
public static TweetTimelineListAdapter retrieveTimeLineByAccount(Context context, String account){
Log.d(TAG, "Loading tweets from user " + account);
UserTimeline userTimeline = new UserTimeline.Builder().screenName(account).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(userTimeline).build();
}
}
结果:
我知道这个问题已经有人问过了。我已经阅读了 twitter 面料 sdk。和它的 Auth 但我对它的理解很愚蠢。所以下面是我想要的关键点
我想要什么
我想让所有的推文都基于散列标签,下面是我想要在移动设备上的示例 Tweets on #Wwe
我希望我的用户不必登录 his/her 推特帐户。他只是在我的应用程序中看到推文列表并让他自我更新。
我已经学习了很多教程,但它们对我没有帮助,我还阅读了如何从 here 和其他一些 link 获取推文。
请告诉我我需要哪个授权? 以及如何做所有这些事情。好 link 没有 twitter 登录吗??
首先您需要使用您的 Twitter 应用程序的密钥和密码初始化 Fabric:
public void initFabric(Context context){
if(!Fabric.isInitialized()) {
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(context, new Twitter(authConfig));
}else{
Log.d(TAG, "Fabric already initialized");
}
}
请记住妥善保管您的密钥和秘密。
然后您可以通过以下方式按帐户和主题标签检索推文:
public static TweetTimelineListAdapter retrieveTimeLineByHashtag(Context context, String hashtag){
Log.d(TAG, "Loading tweets with hashtag " + hashtag);
SearchTimeline searchTimeline = new SearchTimeline.Builder().query(hashtag).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(searchTimeline).build();
}
public static TweetTimelineListAdapter retrieveTimeLineByAccount(Context context, String account){
Log.d(TAG, "Loading tweets from user " + account);
UserTimeline userTimeline = new UserTimeline.Builder().screenName(account).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(userTimeline).build();
}
另请注意,SearchTimeline 仅搜索包含您的搜索词的最新推文,因此您会发现未返回任何推文。但是,我找不到更好的方法来使用 Fabric 通过 Hashtag 获取推文。
编辑:
public class Prueba extends AppCompatActivity {
private static final String TAG = "TWITTER_PRUEBA";
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prueba);
bindUI();
initFabric(getApplicationContext());
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
TweetTimelineListAdapter adapter = retrieveTimeLineByHashtag(this, "#Wwe");
listView.setAdapter(adapter);
}
private void bindUI(){
listView = (ListView) findViewById(R.id.prueba);
}
public static void initFabric(Context context){
Log.d(TAG, "Initializing Fabric");
if(!Fabric.isInitialized()) {
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(context, new Twitter(authConfig));
}else{
Log.d(TAG, "Fabric already initialized");
}
}
public static TweetTimelineListAdapter retrieveTimeLineByHashtag(Context context, String hashtag){
Log.d(TAG, "Loading tweets with hashtag " + hashtag);
SearchTimeline searchTimeline = new SearchTimeline.Builder().query(hashtag).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(searchTimeline).build();
}
public static TweetTimelineListAdapter retrieveTimeLineByAccount(Context context, String account){
Log.d(TAG, "Loading tweets from user " + account);
UserTimeline userTimeline = new UserTimeline.Builder().screenName(account).build();
return new TweetTimelineListAdapter.Builder(context).setTimeline(userTimeline).build();
}
}
结果: