Bài viết này sẽ hướng dẫn cách làm thế nào để gửi nội dung (trạng thái, hình ảnh, video, URL) lên tường Facebook của người dùng sử dụng công nghệ ASP.Net. Đây là tính năng khá hay và được áp dụng trong nhiều dự án của Tôi, và Tôi quyết định chia sẻ nó với độc giả.
Bắt đầu
Đầu tiên cần tạo ra một trang web mới trong ASP.Net sử dụng C#. Bây giờ đăng nhập vào Facebook và nhấn vào liên kết developer và tạo ra một ứng dụng mới, cung cấp tên ứng dụng và bấm vào nút "Continue".
Bây giờ cung cấp mã xác thực(captcha) trong ô TextBox và nhấn "Continue".
Như vậy bạn đã có AppID và App Secret. Bạn chỉ cần sao chép chúng. Và chép URL trang web của bạn và nhấp vào "Save changes".
Bây giờ chúng ta hãy bắt đầu làm việc trên giao diện người dùng. Trong ví dụ này tôi sẽ giải thích hai cách để viết nguồn cấp dữ liệu
Kịch bản đầu tiên: Một button Share bình thường
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<div id="fb-root">
</div>
<script>
window.fbAsyncInit = function () {
FB.init({ appId: '174919555989537', status: true, cookie: true,
xfbml: true
});
};
(function () {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
} ());
</script>
<script type="text/javascript">
$(document).ready(function () {
$('#share_button').click(function (e) {
e.preventDefault();
FB.ui(
{
method: 'feed',
name: 'Kiểm tra bài viết qua Tool tự xây dựng',
link: 'http://dngaz.com/TinTucND.aspx?IdTinTuc=149&TieuDe=Chuc-mung-ngay-Quoc-Te-Phu-Nu-832013',
picture: 'http://dngaz.com/../Upload/TacGia/300612093903safe_image.png',
caption: 'Chúc mừng ngày Quốc Tế Phụ Nữ 8/3/2013',
description: 'Nhân ngày 8/3, DOTNET GROUP kính chúc phái Nữ luôn xinh tươi, hạnh phúc và vui vẻ.',
message: 'Hello Test Message'
});
});
});
</script>
<div>
<input type="button" id="share_button" value="Chia Sẻ" />
</div>
Chạy ứng dụng
Nhập 1 thông báo và nhấn Share
Kịch bản thứ 2: Truy cập ứng dụng, tùy chỉnh bất kỳ(hay hơn, hấp dẫn hơn nhiều)
Thêm Facebook client dll trong thư mục bin và thực hiện code phía bên trong codebehind
Để thêm Facebook dll, đầu tiên truy cập website
http://nuget.org/ để tải tool NuGet.Tools.vsix
Sau khi cài đặt thành công, khởi động lại project. Sau đó chuột phải lên project chọn Manage NuGet Packages...
Tìm kiếm Facebook, chọn Install để tải facebook.dll về và add vào thư mục bin.
Sau khi Add xong thì copy đoạn code này vào default2.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using Facebook;
public partial class Default2 : System.Web.UI.Page
{
string bodymessage = "This is test message description new";
protected void Page_Load(object sender, EventArgs e)
{
CheckAuthorization();
}
private void CheckAuthorization()
{
string app_id = "174919555989537";
string app_secret = "67d8eea342a2fe39c1f7f15300a75ca4";
string scope = "publish_stream,manage_pages";
if (Request["code"] == null)
{
Response.Redirect(string.Format(
"https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&scope={2}",
app_id, Request.Url.AbsoluteUri, scope));
}
else
{
Dictionary<string, string> tokens = new Dictionary<string, string>();
string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&scope={2}&code={3}&client_secret={4}",
app_id, Request.Url.AbsoluteUri, scope, Request["code"].ToString(), app_secret);
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string vals = reader.ReadToEnd();
foreach (string token in vals.Split('&'))
{
tokens.Add(token.Substring(0, token.IndexOf("=")),
token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
}
}
string access_token = tokens["access_token"];
var client = new FacebookClient(access_token);
client.Post("/me/feed", new { message = bodymessage });
}
}
}
Chạy Website
Vì chạy trên localhost nên nó không thể hiển thị đầy đủ nội dung ra được, để hoàn chỉnh ví dụ này, bạn cần publish lên host để chạy trực tiếp thay vì chạy trên máy mình. Đây là
Demo kịch bản 2.
Bạn có thể tải Source Code đầy đủ phía trên bài viết này.