سبد (0)

آموزش یکپارچه سازی فیس بوک

آموزش یکپارچه سازی فیس بوک

اندروید به شما اجازه می دهد تا به فیس بوک متصل شده و هرگونه داده یا آپدیتی را روی فیس بوک به اشتراک بگذارید. این آموزش در مورد کامل سازی فیس بوک روی برنامه ی شما می باشد.

دو روش وجود دارند که از طریق آنها می توان فیس بوک را کامل کرده و چیزی را روی برنامه ی خود به اشتراک بگذارید. این دو روش عبارتند از

1)     Facebook SDK

2)     Intent Share

کامل کردن Facebook SDK

این اولین روش برای اتصال به فیس بوک می باشد. شما باید برنامه ی خود را ثبت کرده و سپس چند Application id دریافت کنید و سپس Facebook SDK  را دانلود کنید و آن را به پروژه ی خود اضافه کنید. مراحل مربوط به آن در زیر ارائه شده اند .

تولید مشخصه های برنامه

شما باید یک مشخصه ی اصلی تولید کنید، اما قبل از تولید آن مطمئن شوید که SSL را نصب کرده اید، در غیر اینصورت ابتدا باید SSL  را دانلود کنید.

اکنون پیام واره ی فرمان را باز کرده و دوباره به سمت فولدر java jre بروید. زمانی که به این فولدر می رسید این فرمان را به طور دقیق تایپ کنید. شما باید مسیر را با مسیر keystore در داخل کاماهای معکوس جایگزین کنید. مسیر keystore را می توانید در eclipse با انتخاب تب window و سپس انتخاب مراجع و سپس انتخاب گزینه ی build زبر android در قسمت چپ، پیدا کنید.

 

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

زمانی که آن را وارد می کنید به مرحله ی پسوورد پیش خواهید رفت. Android را به عنوان پسوورد وارد کنید و سپس کلیدی که به شما داده می شود را کپی کنید.

ثبت برنامه

اکنون یک برنامه ی فیس بوک جدید در developers.facebook.com/apps  وارد کنید و تمام اطلاعات را وارد کنید.

اکنون وارد برنامه ی داخلی اندروید شده، اطلاعات مربوط به پروژه و نام کلاس را پر کرده و آنچه را که در مرحله ی اول کپی کرده بودید در اینجا پیست کنید.

اگر همه چیز به خوبی پیش برود، یک ID برنامه با رمز دریافت خواهید کرد، تنها کافیست این id را کپی کرده و در جایی ذخیره کنید.

دانلود SDK  و کامل کردن آن

Facebook SDK را دانلود کرده و آن را وارد eclipse کنید. زمانی که وارد شد، روی پروژه ی فیس بوک خود راست کلیک کنید و روی دکمه ی add کلیک کنید، facebook SDK را به عنوان پروژه انتخاب کرده و روی OK کلیک کنید.

برنامه ورود به فیس بوک ایجاد شده

زمانی که همه چیز کامل باشد، می توانید نمونه هایی را اجرا کنید که با SDK می آیند و یا خودتان برنامه ای ایجاد کنید. برای ورود لازم است که روش openActiveSessionرا فراخوانده و callback آن را اجرا کنید.  ترکیب آن در زیر ارائه شده است

 

// 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() + "!");
               }
            }
         });
      }
   }
}

اشتراک گذاری Intent

اشتراک گذاری Intent برای اشتراک گذاری داده بین برنامه ها استفاده می شود. در این استراتژی ما به موضوع SDK نمی پردازیم بلکه به برنامه ی فیس بوک اجازه می دهیم تا به آن رسیدگی کند. به سادگی برنامه ی فیس بوک را فراخوانده و داده را وارد می کنیم تا به اشتراک بگذارد. از این طریق می توان چیزی روی فیس بوک به اشتراک گذاشت.

اندروید کتابخانه ی Intent ارائه می دهد تا داده ها بین فعالیت ها و برنامه ها به اشتراک گذاشته شوند. برای استفاده از آن به عنوان share intent  باید نوع share intent را برای ACTION_SENDمشخص کنیم. ترکیب آن در زیر ارائه شده است.

 

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

کار دیگری که لازم است انجام دهید تعریف نوع داده برای انتقال می باشد و سپس داده را منتقل کنید. ترکیب آن مانند زیر می باشد

 

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

علاوه براین روش ها، روش های دیگری برای رسیدگی به intent وجود دارند که در زیر ارائه شده اند.

  • addCategory(String category)

    این روش یک مولفه ی جدید به intent  اضافه می کند.
  • createChooser(Intent target, CharSequence title)

    عملکرد راحت برای ایجاد ACTION_CHOOSER Intent
  • getAction()

    این روش فعالیت کلی که باید انجام شود، مانند ACTION_VIEW را بازیابی می کند.
  • getCategories()

    این روش مجموعه ی همه ی مولفه های intent.nt و رویدادهای مقیاس گذاری اخیر را بازمی گرداند.
  • putExtra(String name, int value)

    این روش داده های گسترده به intent اضافه می کند.
  • toString()

    این روش رشته ای شامل یک توصیف واضح و خوانا از این آبجکت را باز می گرداند.

مثال

در اینجا مثالی را می بینید که استفاده از IntentShare را برای اشتراک گذاری داده روی فیس بوک توضیح می دهد. این مثال یک برنامه ی پایه ایجاد می کند که به شما اجازه ی به اشتراک گذاری متن روی فیس بوک را می دهد.

برای آزمایش با این مثال می توانید آن را روی یک دستگاه واقعی یا یک مقلد اجرا کنید.

  • برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان  IntentShare  تحت بسته ی com.example. intentShare نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.
  • فایل src/MainActivity.java را برای افزودن کد لازم تغییر دهید.
  • res/layout/activity_main را برای افزودن مولفه های XML تغییر هید.
  • res/values/string.xml را برای افزودن مولفه های رشته ی لازم تغییر دهید.
  • برنامه را اجرا کرده و یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کنید، سپس نتایج را بررسی کنید.

در زیر محتوای تغییر یافته ی فایل فعالیت اصلی را مشاهده می کنید.

 

package com.example.sairamkrishna.myapplication;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;

import android.graphics.Typeface;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.io.FileNotFoundException;
import java.io.InputStream;
import static java.lang.System.currentTimeMillis;

public class MainActivity extends ActionBarActivity {
   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"));
         }
      });
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.menu_main, menu);
      return true;
   }
   
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      
      int id = item.getItemId();
      
      //noinspection SimplifiableIfStatement
      if (id == R.id.action_settings) {
         return true;
      }
      return super.onOptionsItemSelected(item);
   }
}

در زیر محتوای تغییر یافته ی xml مربوط به res/layout/activity_main.xmlرا مشاهده می کنید.

 

<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/logo"/>
   
   <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>

در زیر محتوای فایل AndroidManifest.xmlرا مشاهده می کنید.

 

<?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>

اجازه بدهید برنامه ی IntentShare را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run  از تولبار کلیک کنید.

دستگاه موبایل خود را به عنوان یک گزینه انتخاب کرده و سپس آن را بررسی کنید که صفحه ی زیر را نمایش بدهد.

 

اکنون روی دکمه ضربه بزنید، پس از آن ارائه کنندگان اشتراک گذاری را مشاهده خواهید کرد.

 

اکنون از تصویر facebook را انتخاب کرده و پیامی را که می خواهید بنویسید، این مسئله در تصویر زیر نمایش داده شده است.

 

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه