2

我希望能够将 Twitter 时间线添加到我的应用程序中,并允许用户更新他/她的状态。问题是我不知道如何进入登录屏幕。我尝试在网上搜索,但他们的所有内容都已过时,我想开发 4.0+ 版本。

这是我到目前为止所拥有的:代码似乎根本不起作用,因为我将它用于 Android > 4.0 的 Android 应用程序,因此它无法使用 15 或更高版本的 SDK 进行编译。这一次我使用的是Twitter4J库,并且文件都已更新。

package com.shirwa.texthero.fragments;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.shirwa.texthero.R;

public class TwitterTab extends Activity implements OnClickListener {

    static final String TAG = "MyTwitter";

    TwitterTab twitter;
    SharedPreferences prefs;

    Button buttonUpdate;
    Button buttonPrefs;
    EditText textStatus;

    @Override
    public void onClick(View src) {
        String status = textStatus.getText().toString();

        Log.d(TAG, "Clicked on " + status);

        // Toast
        Toast.makeText(this, textStatus.getText(), Toast.LENGTH_LONG).show();

        // set twitter status
        twitter.updateStatus(status);

        // reset status string
        textStatus.setText("");
    }

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // find views by id
        buttonUpdate = (Button) findViewById(R.id.buttonUpdate);
        textStatus = (EditText) findViewById(R.id.textStatus);

        // Add listener
        buttonUpdate.setOnClickListener(this);

        // Initialize twitter
        prefs = PreferenceManager.getDefaultSharedPreferences(this);
        String username = prefs.getString("username", "n/a");
        String password = prefs.getString("password", "n/a");
        if (username != null && password != null) {
            twitter = new Twitter(username, password);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }

    // Called when menu item is selected //
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menuPrefs:
            // Launch Prefs activity
            Intent i = new Intent(TwitterTab.this, Prefs.class);
            startActivity(i);
            Log.d(TAG, "MenuPrefs starting Prefs");
            Toast.makeText(TwitterTab.this, textStatus.getText(),
                    Toast.LENGTH_LONG).show();
            break;
        }
        return true;
    }
}
4

4 回答 4

3

在开始之前,让我先说,我通常不发布链接,只发布答案。作为初学者,我可能已经这样做了,但几乎没有了。除非帖子是合法有效的,没有链接就无法完整回答。

要开始通过您的应用程序登录 Twitter,这里有一个很棒的小教程,可以帮助您入门:

Android Twitter oAuth Connect 教程以及登录后发布状态更新。

您还可以查看托管在 GitHub 上的示例T4JTwitterLogin。这是使用您的应用程序登录 Twitter 并发布状态更新的另一个示例。

至于奖金好东西(嗯,实际上只是一个)。一旦您对完整开发的 Android 有点熟悉,或者当您可以开始解读其他开发人员的代码时,这里有一个功能齐全的用于 Twitter 的 Android 应用程序,它是开源的,可在Google Play 商店中获得,并且相当受欢迎.

这是 GitHub 上使用关键字 Android 和 twitter4J 的搜索结果的链接:https ://github.com/search?q=android+twitter4j&type=Repositories&s=updated

于 2013-03-13T05:56:45.130 回答
1

我在我的应用程序中开发了TWITTER。它工作成功..这是链接

您可以为您的应用程序开发。

于 2013-03-13T07:05:31.333 回答
0

首先,您必须验证您的应用程序,这将需要 2 个密钥(这将在您的应用程序注册期间由 twitter 提供给您)。

其次,你需要使用Oauth进行身份验证,你可以谷歌它,(单独尝试)。

第三,处理回调并处理所需的响应。 以此作为参考

于 2013-03-13T05:57:28.347 回答
0

您在那里实际使用的 API 是什么?

没有为 android 构建的官方 twitter SDK,只有他们的 REST API。为此,我个人可以推荐库“Scribe”来处理与 twitter 的集成。它可以处理 REST API 中指定的身份验证、发布和任何其他功能。

https://github.com/fernandezpablo85/scribe-java https://dev.twitter.com/docs/api/1.1

于 2013-03-13T05:19:24.980 回答