Android - Facebook Entegrasyonu
Android, uygulamanızın facebook'a bağlanmasına ve verileri veya her türlü güncellemeyi facebook'ta paylaşmasına izin verir. Bu bölüm, facebook'u uygulamanıza entegre etmekle ilgilidir.
Facebook'u entegre etmenin ve uygulamanızdan bir şeyler paylaşmanın iki yolu vardır. Bu yollar aşağıda listelenmiştir -
- Facebook SDK
- Amaç Paylaşımı
Facebook SDK entegrasyonu
Facebook ile bağlantı kurmanın ilk yolu budur. Uygulamanızı kaydettirmeniz ve ardından bir Uygulama Kimliği almanız ve ardından facebook SDK'yı indirmeniz ve projenize eklemeniz gerekir. Adımlar aşağıda listelenmiştir:
Uygulama imzası oluşturma
Bir anahtar imzası oluşturmanız gerekir, ancak onu oluşturmadan önce, SSL'nin kurulu olduğundan emin olun, aksi takdirde SSl'yi indirmeniz gerekir. Bu indirilebilir burada .
Şimdi komut istemini açın ve java jre klasörünüze yeniden yönlendirin. Oraya ulaştığınızda, bu komutu tam olarak yazın. Ters virgüldeki yolu, pencere sekmesini seçip tercihler sekmesini seçerek ve ardından sol taraftan android altındaki inşa seçeneğini seçerek tutulmada bulabileceğiniz anahtar deposu yolunuzla değiştirmeniz gerekir.
keytool -exportcert -alias androiddebugkey -keystore "your path"
| openssl sha1 -binary | openssl base64
Bir kez girdiğinizde, sizden şifre istenecektir. Parola olarak android'i verin ve size verilen anahtarı kopyalayın. Aşağıdaki resimde gösterilmektedir -
Uygulamanızı kaydettirme
Şimdi developer.facebook.com/apps adresinde yeni bir facebook uygulaması oluşturun ve tüm bilgileri doldurun. Aşağıda gösterilmiştir -
Şimdi yerel android uygulaması bölümüne gidin ve projenizi ve sınıf adınızı doldurun ve 1. adımda kopyaladığınız hash'i yapıştırın. Aşağıda gösterilmektedir -
Her şey yolunda giderse, sır içeren bir uygulama kimliği alacaksınız. Sadece uygulama kimliğini kopyalayın ve bir yere kaydedin. Aşağıdaki resimde gösterilmektedir -
SDK'yı indirme ve entegre etme
Facebook sdk'yi buradan indirin . Bunu tutulmaya aktarın. İçe aktarıldıktan sonra, facebook projenize sağ tıklayın ve özelliklere tıklayın. Android'e tıklayın, ekle düğmesine tıklayın ve proje olarak facebook sdk'yi seçin.
Facebook oturum açma uygulaması oluşturma
Her şey tamamlandığında, SDK ile birlikte gelen örnekleri çalıştırabilir veya kendi uygulamanızı oluşturabilirsiniz. Giriş yapmak için aramanız gerekiyoropenActiveSessionyöntemi ve geri aramasını uygular. Söz dizimi aşağıda verilmiştir -
// 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() + "!");
}
}
});
}
}
}
Amaç paylaşımı
Amaç paylaşımı, uygulamalar arasında veri paylaşmak için kullanılır. Bu stratejide, SDK işlerini halletmeyeceğiz, ancak facebook uygulaması halledecek. Sadece facebook uygulamasını arayacağız ve verileri paylaşmak için aktaracağız. Bu şekilde facebook'ta bir şeyler paylaşabiliriz.
Android, etkinlikler ve uygulamalar arasında veri paylaşmak için amaç kitaplığı sağlar. Bunu paylaşım amacı olarak kullanmak için, paylaşma niyetinin türünü belirtmeliyiz.ACTION_SEND. Söz dizimi aşağıda verilmiştir -
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
Yapmanız gereken sonraki şey, aktarılacak veri türünü tanımlamak ve ardından verileri iletmektir. Söz dizimi aşağıda verilmiştir -
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));
Bu yöntemlerin dışında, niyet işlemeye izin veren başka yöntemler de vardır. Aşağıda listelenmiştir -
Sr.No | Yöntem ve açıklama |
---|---|
1 |
addCategory(String category) Bu yöntem, amaca yeni bir kategori ekler. |
2 |
createChooser(Intent target, CharSequence title) ACTION_CHOOSER Amacı oluşturmak için kolaylık işlevi |
3 |
getAction() Bu yöntem, ACTION_VIEW gibi gerçekleştirilecek genel eylemi alır. |
4 |
getCategories() Bu yöntem, amaçtaki tüm kategorilerin kümesini ve geçerli ölçekleme olayını döndürür |
5 |
putExtra(String name, int value) Bu yöntem, amaca genişletilmiş veriler ekler. |
6 |
toString() Bu yöntem, bu nesnenin kısa, insan tarafından okunabilir bir açıklamasını içeren bir dize döndürür |
Misal
İşte facebook'ta veri paylaşmak için IntentShare kullanımını gösteren bir örnek. Facebook'ta bazı metinleri paylaşmanıza izin veren temel bir uygulama oluşturur.
Bu örneği denemek için, bunu gerçek bir cihazda veya bir emülatörde çalıştırabilirsiniz.
Adımlar | Açıklama |
---|---|
1 | Com.example.sairamkrishna.myapplication paketi altında Android uygulaması oluşturmak için Android stüdyosunu kullanacaksınız. |
2 | Gerekli kodu eklemek için src / MainActivity.java dosyasını değiştirin. |
3 | İlgili XML bileşenlerini eklemek için res / layout / activity_main'i değiştirin. |
4 | Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın. |
Aşağıda, değiştirilen ana aktivite dosyasının içeriği yer almaktadır 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"));
}
});
}
}
Xml'nin değiştirilmiş içeriği aşağıdadır res/layout/activity_main.xml.
Aşağıdaki kodda abc tutorialspoint.com logosunu gösterir
<?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>
Aşağıdakilerin içeriği AndroidManifest.xml dosya.
<?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>
Uygulamanızı çalıştırmayı deneyelim. Gerçek Android Mobil cihazınızı bilgisayarınıza bağladığınızı varsayıyorum. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın
Mobil cihazınızı bir seçenek olarak seçin ve ardından varsayılan ekranınızı gösterecek olan mobil cihazınızı kontrol edin -
Şimdi sadece düğmeye dokunun ve paylaşım sağlayıcılarının bir listesini göreceksiniz.
Şimdi bu listeden facebook'u seçin ve ardından herhangi bir mesaj yazın. Aşağıdaki resimde gösterilmektedir -