ارسال پست به شبکه اجتماعی Facebook با استفاده از زبان سی شارپ
فیس بوک یک سرویس شبکهٔ اجتماعی برخط است که در ۴ فوریه سال ۲۰۰۴ میلادی توسط مارک زاکربرگ و دوستانش ادوآردو سوری، اندرو مککالم، داستین مسکوتیز و کریس هیوز در دانشگاه هاروارد به وجود آمد. در ابتدا نامنویسی در این تارنما به دانشجویان دانشگاه هاروارد محدود بود، اما با گذشت زمان درِ آن برای دانشگاههای شهر بوستون، آیوی لیگ و دانشگاه استنفورد نیز گشودهشد. پس از افزودهشدن دانشگاههای مختلف و دبیرستانها به لیست مجاز عضویت در فیسبوک، عضویت در آن به تدریج در دسترس تمامی افراد بالای ۱۳ سال در سراسر دنیا قرار گرفت.
در صورتی که حساب کاربری Facebook ندارید، یک حساب جدید ایجاد کرده و در نهایت اینجا کلیک کنید، صفحه ای مشابه زیر برای شما نمایان میشود.
در این گام میبایست پروژه جدید ساخته شود، که میتوان در منو بالا از بخش MyApp آیتم Add a New App را کلیک کنید.
در دیالوگ باز شده بر روی Advance Setup کلیک کنید:
فیلدهای Display Name و Namespace را پر کنید و نوع دستهبندی را انتخاب و در نهایت بر روی دکمه Create App Id کلیک کنید:
بعد از طی گام دوم به صفحه ای مشابه زیر هدایت خواهید شده که میبایست در انتهای صفحه و بر روی لینک Graph API Explorer در بخش Tools کلیک نماید:
در صفحه Graph API Explorer پروژه ایجاد شده را انتخاب و آیتم Get User Access Token را از مجموعه Get Token انتخاب نماید:
بعد از کلیک بر روی Get User Access Token دیالوگ Selected permission برای شما نمایان میشود که میبایست تیک publish_actions را انتخاب و دکمه Get Access Token را بزنید:
نکته: مطما باشید مرورگر اجازه باز شدن popup برای facebook را محدود نکرده باشد.
حال با popup زیر روبرو خواهید شد:
بعد از کلیک بر روی دکمه Okay به صفحه زیر هدایت میشود که از شما میخواهد مشخص کنید پست ارسالی برای کدام گروه قابل نمایش باشد :
- عمومی
- دوستان
- فقط خودم
- به صورت دستی مشخص شود
به صورت پیش فرض بر روی دوستان فعال است.
بعد از انتخاب گروه بر روی دکمه Okay کلیک کنید.
تا گام قبلی موفق شدیم 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 جهت ارسال متن استفاده شده.
0 نظر:
تعداد دیدگاههای کاربران : 0 دیدگاه