在Android应用中集成Twitter API

在Android应用中集成Twitter API

在本教程中,我们将在Android应用中集成 Twitter登录API 。要在Android应用中集成Twitter API,需要应用的 消费者密钥(API密钥)消费者密钥(API密钥) 。可以从下面网址生成: https://apps.twitter.com/ 。

将Twitter API集成到Android应用中可以帮助用户使用Twitter帐户登录、分享推文等。

生成Twitter API密钥和API密钥的步骤

1. 使用您的Twitter帐户登录 https://apps.twitter.com/ 并点击“创建新应用”。

在Android应用中集成Twitter API

2. 填写新打开的表格中的所有必填细节,然后点击“创建您的Twitter应用程序”。

在Android应用中集成Twitter API

3. 选择应用程序的权限模式。在这里,我们选择了读取、写入和访问直接消息,并点击“更新设置”。

在Android应用中集成Twitter API

4. 现在,打开“设置”选项卡,填写所有必填项,并点击“更新设置”。

在Android应用中集成Twitter API

5. 现在,再次打开 Permissions 标签,启用“从用户请求电子邮件”并点击“更新设置”。

在Android应用中集成Twitter API

6. 现在,打开“密钥和访问令牌”选项卡,我们将找到我们的应用程序的“消费者密钥”和“消费者密钥”。

在Android应用中集成Twitter API

将Twitter登录集成到Android应用程序的示例

让我们创建一个示例,在Android应用程序中通过Twitter帐户进行登录集成。

创建一个Android应用程序,并在 ‘build.gradel’(模块) 文件中添加以下Twitter依赖项。

compile 'com.twitter.sdk.android:twitter:3.1.1'
compile 'com.twitter.sdk.android:twitter-core:3.1.1'

确保 “jcenter()” 在 ‘build.gradle’ (Project) 文件中存在。

strings.xml

将Twitter生成的应用程序的 ‘Consumer Key’‘Consumer Secret’ 放置在 ‘strings.xml’ 文件中。

<resources>
    <string name="app_name">Twitter Login Demo</string>
    <string name="com.twitter.sdk.android.CONSUMER_KEY">Fw4cXXXXXXXXXXX</string>
    <string name="com.twitter.sdk.android.CONSUMER_SECRET">Pnr7XXXXXXXXXXX</string>
</resources>

activity_main.xml

在 ‘activity_main.xml’ 文件中添加由Twitter API提供的Twitter登录按钮。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="example.com.twitterlogindemo.MainActivity">


    <com.twitter.sdk.android.core.identity.TwitterLoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="40dp"/>

</RelativeLayout>

MainActivity.java

在 ‘MainActivity.java’ 文件中添加以下代码。我们应该在 ‘setContentView(R.layout.activity_main)’ 之前放置 ‘Twitter.initialize(this)’ 代码。如果我们将 ‘Twitter.initialize(this)’ 放在 ‘setContentView(R.layout.activity_main)’ 之后,那么我们的Twitter按钮将被禁用。

package example.com.twitterlogindemo;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.Result;
import com.twitter.sdk.android.core.Twitter;
import com.twitter.sdk.android.core.TwitterAuthToken;
import com.twitter.sdk.android.core.TwitterCore;
import com.twitter.sdk.android.core.TwitterException;
import com.twitter.sdk.android.core.TwitterSession;
import com.twitter.sdk.android.core.identity.TwitterLoginButton;

public class MainActivity extends AppCompatActivity {

    TwitterLoginButton loginButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Twitter.initialize(this);
        setContentView(R.layout.activity_main);

        loginButton = (TwitterLoginButton) findViewById(R.id.login_button);
        loginButton.setCallback(new Callback() {
            @Override
            public void success(Result result) {
                // Do something with result, which provides a TwitterSession for making API calls
                TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                TwitterAuthToken authToken = session.getAuthToken();
                //String token = authToken.token;
              //  String secret = authToken.secret;

                loginMethod(session);
            }

            @Override
            public void failure(TwitterException exception) {
                // Do something on failure
                Toast.makeText(getApplicationContext(),"Login fail",Toast.LENGTH_LONG).show();
            }
        });
    }

    public void loginMethod(TwitterSession twitterSession){
            String userName=twitterSession.getUserName();
            Intent intent= new Intent(MainActivity.this,HomeActivity.class);
            intent.putExtra("username",userName);
            startActivity(intent);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Pass the activity result to the login button.
        loginButton.onActivityResult(requestCode, resultCode, data);
    }
}

现在我们创建另一个活动,用于在登录成功后将用户重定向。

activity_home.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="example.com.twitterlogindemo.HomeActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Welcome to HomePage"
        android:textSize="20dp"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="40dp"

       />

    <TextView
        android:id="@+id/nametextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/textView"
        android:layout_marginTop="48dp"
        android:textSize="16dp"
        android:text="" />
</RelativeLayout>

HomeActivity.java

在这个类中,我们将在 TextView 中显示从 ‘MainActivity.java’ 文件中接收到的用户名。

package example.com.twitterlogindemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class HomeActivity extends AppCompatActivity {
    TextView name;
    String user;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        user=getIntent().getStringExtra("username");
        name=(TextView)findViewById(R.id.nametextView);
        name.setText(user);

    }
}

输出:

在Android应用中集成Twitter API

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程