Android - Tích hợp Facebook

Android cho phép ứng dụng của bạn kết nối với facebook và chia sẻ dữ liệu hoặc bất kỳ loại cập nhật nào trên facebook. Chương này nói về việc tích hợp facebook vào ứng dụng của bạn.

Có hai cách để bạn có thể tích hợp facebook và chia sẻ nội dung nào đó từ ứng dụng của mình. Những cách này được liệt kê bên dưới -

  • SDK Facebook
  • Chia sẻ ý định

Tích hợp SDK Facebook

Đây là cách kết nối đầu tiên với facebook. Bạn phải đăng ký ứng dụng của mình và sau đó nhận một số Id ứng dụng, sau đó bạn phải tải xuống SDK facebook và thêm nó vào dự án của mình. Các bước được liệt kê dưới đây:

Tạo chữ ký ứng dụng

Bạn phải tạo một chữ ký khóa, nhưng trước khi tạo, hãy đảm bảo rằng bạn đã cài đặt SSL, nếu không, bạn phải tải xuống SSl. Nó có thể được tải xuống tại đây .

Bây giờ hãy mở dấu nhắc lệnh và chuyển hướng đến thư mục java jre của bạn. Khi bạn đến đó, hãy nhập chính xác lệnh này. Bạn phải thay thế đường dẫn trong dấu phẩy ngược bằng đường dẫn kho khóa mà bạn có thể tìm thấy trong nhật thực bằng cách chọn tab cửa sổ và chọn tab tùy chọn, sau đó chọn tùy chọn xây dựng trong android từ phía bên trái.

keytool -exportcert -alias androiddebugkey -keystore "your path" 
   | openssl sha1 -binary | openssl base64

Khi bạn nhập nó, bạn sẽ được nhắc nhập mật khẩu. Cung cấp cho android làm mật khẩu và sau đó sao chép khóa được cấp cho bạn. Nó được hiển thị trong hình ảnh bên dưới -

Đăng ký ứng dụng của bạn

Bây giờ hãy tạo một ứng dụng facebook mới tại Develop.facebook.com/apps và điền đầy đủ thông tin. Nó được hiển thị bên dưới -

Bây giờ, hãy chuyển đến phần ứng dụng android gốc và điền vào tên dự án và lớp của bạn và dán mã băm mà bạn đã sao chép ở bước 1. Nó được hiển thị bên dưới -

Nếu mọi thứ hoạt động tốt, bạn sẽ nhận được một ID ứng dụng có bí mật. Chỉ cần sao chép id ứng dụng và lưu nó ở đâu đó. Nó được hiển thị trong hình ảnh bên dưới -

Tải xuống SDK và tích hợp nó

Tải sdk facebook tại đây . Nhập dữ liệu này vào nhật thực. Sau khi nhập xong, nhấp chuột phải vào dự án facebook của bạn và nhấp vào thuộc tính, nhấp vào android, nhấp vào nút thêm và chọn facebook sdk làm dự án. Nhấp ok.

Tạo ứng dụng đăng nhập facebook

Sau khi mọi thứ hoàn tất, bạn có thể chạy các mẫu đi kèm với SDK hoặc tạo ứng dụng của riêng bạn. Để đăng nhập, bạn cần gọiopenActiveSessionvà thực hiện cuộc gọi lại của nó. Cú pháp của nó được đưa ra dưới đây:

// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
   
   // callback when session changes state
   public void call(Session session, SessionState state, Exception exception) {
      if (session.isOpened()) {
         // make request to;2 the /me API
         Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
            
            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
               if (user != null) {
                  TextView welcome = (TextView) findViewById(R.id.welcome);
                  welcome.setText("Hello " + user.getName() + "!");
               }
            }
         });
      }
   }
}

Chia sẻ ý định

Chia sẻ ý định được sử dụng để chia sẻ dữ liệu giữa các ứng dụng. Trong chiến lược này, chúng tôi sẽ không xử lý nội dung SDK mà để ứng dụng facebook xử lý. Đơn giản là chúng ta sẽ gọi ứng dụng facebook và chuyển dữ liệu để chia sẻ. Bằng cách này, chúng ta có thể chia sẻ điều gì đó trên facebook.

Android cung cấp thư viện ý định để chia sẻ dữ liệu giữa các hoạt động và ứng dụng. Để sử dụng nó làm mục đích chia sẻ, chúng tôi phải chỉ định loại mục đích chia sẻACTION_SEND. Cú pháp của nó được đưa ra dưới đây:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);

Điều tiếp theo bạn cần là xác định kiểu dữ liệu để truyền, và sau đó chuyển dữ liệu. Cú pháp của nó được đưa ra dưới đây:

shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));

Ngoài các phương pháp này, còn có các phương pháp khác cho phép xử lý ý định. Chúng được liệt kê dưới đây -

Sr.No Phương pháp & mô tả
1

addCategory(String category)

Phương pháp này thêm một danh mục mới vào ý định.

2

createChooser(Intent target, CharSequence title)

Chức năng thuận tiện để tạo Ý định ACTION_CHOOSER

3

getAction()

Phương thức này truy xuất hành động chung sẽ được thực hiện, chẳng hạn như ACTION_VIEW

4

getCategories()

Phương thức này trả về tập hợp tất cả các danh mục trong ý định và sự kiện chia tỷ lệ hiện tại

5

putExtra(String name, int value)

Phương pháp này thêm dữ liệu mở rộng vào ý định.

6

toString()

Phương thức này trả về một chuỗi chứa mô tả ngắn gọn, con người có thể đọc được về đối tượng này

Thí dụ

Đây là một ví dụ minh họa việc sử dụng IntentShare để chia sẻ dữ liệu trên facebook. Nó tạo ra một ứng dụng cơ bản cho phép bạn chia sẻ một số văn bản trên facebook.

Để thử nghiệm với ví dụ này, bạn có thể chạy điều này trên thiết bị thực tế hoặc trong trình giả lập.

Các bước Sự miêu tả
1 Bạn sẽ sử dụng Android studio để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2 Sửa đổi tệp src / MainActivity.java để thêm mã cần thiết.
3 Sửa đổi res / layout / activity_main để thêm các thành phần XML tương ứng.
4 Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.

Sau đây là nội dung của tệp hoạt động chính được sửa đổi MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import android.widget.Button;
import android.widget.ImageView;

import java.io.FileNotFoundException;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity {
   private ImageView img;

   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      img=(ImageView)findViewById(R.id.imageView);
      Button b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            Uri screenshotUri = Uri.parse("android.
            resource://comexample.sairamkrishna.myapplication/*");
            
            try {
               InputStream stream = getContentResolver().openInputStream(screenshotUri);
            } catch (FileNotFoundException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            }

            sharingIntent.setType("image/jpeg");
            sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
            startActivity(Intent.createChooser(sharingIntent, "Share image using"));
         }
      });
   }
}

Sau đây là nội dung sửa đổi của xml res/layout/activity_main.xml.

Trong đoạn mã dưới đây abc cho biết logo của tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"
      android:text="Facebook share " />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:layout_below="@+id/textView2"
      android:layout_centerHorizontal="true"
      android:src="@drawable/abc"/>
   
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Share"
      android:id="@+id/button"
      android:layout_marginTop="61dp"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true" />
      
</RelativeLayout>

Sau đây là nội dung của AndroidManifest.xml tập tin.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
   </application>
</manifest>

Hãy thử chạy Ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào

biểu tượng Chạy từ thanh công cụ. Trước khi khởi động ứng dụng của bạn, Android studio sẽ hiển thị cửa sổ sau để chọn một tùy chọn mà bạn muốn chạy ứng dụng Android của mình.

Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn -

Bây giờ chỉ cần nhấn vào nút và bạn sẽ thấy danh sách các nhà cung cấp chia sẻ.

Bây giờ chỉ cần chọn facebook từ danh sách đó và sau đó viết một tin nhắn bất kỳ. Nó được hiển thị trong hình ảnh bên dưới -