چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید

آپدیت روزانه

بیش از 1500 مطلب آموزشی

نیازهای روز

ارسال پست به شبکه اجتماعی Facebook با استفاده از زبان سی شارپ

فیس بوک یک سرویس شبکهٔ اجتماعی برخط است که در ۴ فوریه سال ۲۰۰۴ میلادی توسط مارک زاکربرگ و دوستانش ادوآردو سوری، اندرو مک‌کالم، داستین مسکوتیز و کریس هیوز در دانشگاه هاروارد به وجود آمد. در ابتدا نام‌نویسی در این تارنما به دانشجویان دانشگاه هاروارد محدود بود، اما با گذشت زمان درِ آن برای دانشگاه‌های شهر بوستون، آیوی لیگ و دانشگاه استنفورد نیز گشوده‌شد. پس از افزوده‌شدن دانشگاه‌های مختلف و دبیرستان‌ها به لیست مجاز عضویت در فیس‌بوک، عضویت در آن به تدریج در دسترس تمامی افراد بالای ۱۳ سال در سراسر دنیا قرار گرفت.

در صورتی که حساب کاربری Facebook ندارید، یک حساب جدید ایجاد کرده و در نهایت اینجا کلیک کنید، صفحه ای مشابه زیر برای شما نمایان می‌شود. 

 

developers.facebook

 

در این گام می‌بایست پروژه جدید ساخته شود، که می‌توان در منو بالا از بخش MyApp آیتم Add a New App را کلیک کنید.

 

facebook-add new app

 

 

در دیالوگ باز شده بر روی Advance Setup کلیک کنید:

 

facebook-select a new app

 

 

فیلدهای Display Name و Namespace را پر کنید و نوع دسته‌بندی را انتخاب و در نهایت بر روی دکمه Create App Id کلیک کنید:

 

facebook-create a new app id

 

بعد از طی گام دوم به صفحه ای مشابه زیر هدایت خواهید شده که می‌بایست در انتهای صفحه و بر روی لینک Graph API Explorer در بخش Tools کلیک نماید:

 

facebook-developer home page

 

 

facebook-tools

 

 

در صفحه Graph API Explorer پروژه ایجاد شده را انتخاب و آیتم Get User Access Token را از مجموعه Get Token انتخاب نماید:

 

facebook-graph api explorer

 

بعد از کلیک بر روی Get User Access Token دیالوگ Selected permission  برای شما نمایان می‌شود که می‌بایست تیک publish_actions را انتخاب و دکمه Get Access Token را بزنید:

 

facebook-selected permission

 

 

نکته: مطما باشید مرورگر اجازه باز شدن popup برای facebook را محدود نکرده باشد.

حال با popup زیر روبرو خواهید شد:

Graph API Explorer will receive the following info

 

بعد از کلیک بر روی دکمه Okay به صفحه زیر هدایت می‌شود که از شما می‌خواهد مشخص کنید پست ارسالی برای کدام گروه قابل نمایش باشد :

  1. عمومی
  2. دوستان
  3. فقط خودم
  4. به صورت دستی مشخص شود

 به صورت پیش فرض بر روی دوستان فعال است.

 

facebook-graph api explorer would like to post to facebook for you

 

 

بعد از انتخاب گروه بر روی دکمه Okay کلیک کنید.

 

 

facebook - access token

 

تا گام قبلی موفق شدیم Access Token را دریافت کنیم. حال می بایست پروژه جدیدی در Visual Studio ایجاد کنیم، در این پروژه از Console Application استفاده شده، البته شما می‌توانید پروژه را تحت وب هم در نظر بگیرید.

بعد از اجرای پروژه نیاز است بسته Facebook از NuGet دریافت شود که با کلیک راست بر روی Reference و انتخاب Manage NuGet Packages و جستجو بسته Facebook آن را نصب کرد.

یک دیگر از راه‌های نصب این بسته Copy کردن کد زیر و Paste کردن آن در Package Manager Console است.

Install-Package Facebook

بعد از نصب بسته از کد زیر برای ارسال پست در Facebook استفاده کنید:

using System;
using System.Collections.Generic;

namespace PostMessageToFacebook
{
    class Program
    {
        static void Main(string[] args)
        {
            // پارامتر اول کد دریافتی از فیس بوک در گام سوم دریافت نمودید درج خواهد شد
            Console.WriteLine(PostFacebookWall("Access Token", "Your Message"));
        }
        private static string PostFacebookWall(string accessToken, string message)
        {
            var responsePost = "";
            try
            {
                //create the facebook account object
                var objFacebookClient = new Facebook.FacebookClient(accessToken);
                var parameters = new Dictionary<string, object>();
                parameters["message"] = message;
                responsePost = objFacebookClient.Post("feed", parameters).ToString();
            }
            catch (Exception ex)
            {
                responsePost = "Facebook Posting Error Message: " + ex.Message;
            }
            return responsePost;
        }
    }
}

 

نکته:

  • متد فراخوانی شده PostFacebookWall شامل دو پارامتر ورودی می باشد که پارامتر اول آن Access Token دریافت می‌شود و در پارامتر بعدی متن شما جهت ارسال به فیس بوک.
  • امکان ارسال پست تکراری وجود ندارد.

متد Post:

public virtual object Post(string path, object parameters)
        {
            return this.Api(HttpMethod.Post, path, parameters, null);
        }

متد Api فراخوانی شده در متد Post:

protected virtual object Api(HttpMethod httpMethod, string path, object parameters, Type resultType)
        {
            Stream stream;
            bool flag;
            IList<int> list;
            Stream stream3;
            HttpHelper httpHelper = this.PrepareRequest(httpMethod, path, parameters, resultType, out stream, out flag, out list);
            if (stream != null)
            {
                try
                {
                    using (Stream stream2 = httpHelper.OpenWrite())
                    {
                        byte[] buffer = new byte[0x1000];
                        while (true)
                        {
                            int count = stream.Read(buffer, 0, buffer.Length);
                            stream.Flush();
                            if (count <= 0)
                            {
                                goto Label_0080;
                            }
                            stream2.Write(buffer, 0, count);
                            stream2.Flush();
                        }
                    }
                }
                catch (WebExceptionWrapper wrapper)
                {
                    if (wrapper.GetResponse() == null)
                    {
                        throw;
                    }
                }
                finally
                {
                    stream.Dispose();
                }
            }
        Label_0080:
            stream3 = null;
            object obj2 = null;
            bool flag2 = false;
            try
            {
                stream3 = httpHelper.OpenRead();
                flag2 = true;
            }
            catch (WebExceptionWrapper wrapper2)
            {
                HttpWebResponseWrapper response = wrapper2.GetResponse();
                if (response == null)
                {
                    throw;
                }
                if (response.StatusCode == HttpStatusCode.NotModified)
                {
                    JsonObject obj3 = new JsonObject();
                    JsonObject obj4 = new JsonObject();
                    foreach (string str in response.Headers.AllKeys)
                    {
                        obj4[str] = response.Headers[str];
                    }
                    obj3["headers"] = obj4;
                    return obj3;
                }
                stream3 = httpHelper.OpenRead();
                flag2 = true;
                return obj2;
            }
            finally
            {
                if (flag2)
                {
                    string str2;
                    using (Stream stream4 = stream3)
                    {
                        using (StreamReader reader = new StreamReader(stream4))
                        {
                            str2 = reader.ReadToEnd();
                        }
                    }
                    obj2 = this.ProcessResponse(httpHelper, str2, resultType, flag, list);
                }
            }
            return obj2;
        }

 

در داخل متد PostFacebookWall یک شی از کلاس FacebookClient ایجاد شده است که در پارامتر ورودی Access Token به آن پاس داده می‌شود و از متد Post در شی objFacebookClient جهت ارسال متن استفاده شده.

 

facebook-message

امید نصری

0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.


You must log on to comment.