เราจะโพสบางอย่างลงบน Facebook Timeline ด้วยการใช้ Facebook iPhone SDK โดยเริ่มจากการ download Facebook iPhone SDK และ uncompress ให้เสร็จเรียบร้อย จากนั้นให้ link เข้ามาใช้ใน project ของเราดังนี้
- ในขณะที่เราเปิดโปรเจ็คของเราอยู่ ให้เปิดไฟล์ชื่อ FBConnect.xcodeproj ซึ่งอยู่ในโฟลเดอร์ชื่อ src ของไฟล์ที่เรา download มา
- ลาก group ที่ชื่อ FBConnect ที่อยู่ใน project ที่เรา download มาลงไปใส่ในโปรเจ็คของเรา
- click ขวาที่โปรเจ็คของเราแล้วเลือก Get Info, ใน tab Build ให้ไปกำหนดค่าของ User Header Search Paths เป็น path ตำแหน่ง directory ของไฟล์ FBConnect.xcodeproj ที่เราเปิดในข้อ 1 เท่านี้ก็เรียบร้อย
- สร้าง facebook session
- login เข้า facebook
- grant permission เพื่อให้ได้โพสลงไปใน timeline ได้
- โพสลงไปด้วย dialog ที่ api เตรียมไว้ให้
เริ่มกันเลย
1. เริ่มจากให้ import FBConnect ดังนี้
จากนั้นสร้าง session ด้วย factory method ของ FBSession โดยใช้ KEY ที่สามารถขอได้จากที่นี่ หากไม่สร้าง session จะไม่สามารถทำอะไรกับ facebook ได้เลย ดังนี้
#import "FBConnect/FBConnect.h"
จากนั้นสร้าง session ด้วย factory method ของ FBSession โดยใช้ KEY ที่สามารถขอได้จากที่นี่ หากไม่สร้าง session จะไม่สามารถทำอะไรกับ facebook ได้เลย ดังนี้
if(![_session resume]){
_session = [FBSession
sessionForApplication: API_KEY secret: SECRET_KEY delegate:self];
}
สังเกตว่าในการสร้าง session จะมีการกำหนด delegate ด้วย ตัวไหน Xcode จะบอกเอง ;)
2. แปะปุ่มสำหรับ login เข้า facebook ลงไปบน view และเราจะใช้ปุ่มนี้เพื่อให้ผู้ใช้ login เข้าใช้งาน facebook
FBLoginButton* button = [[[FBLoginButton alloc] init] autorelease];
[view addSubview:button];
หลังจาก login เสร็จแล้ว delegate method ที่นิยามไว้ใน FBDialogDelegate ตัวนี้จะทำงาน
- (void)session:(FBSession*)session didLogin:(FBUID)uid {
}
3. หลังจาก user login แล้ว เราจะ Grant permission เพื่อให้เราสามารถโพสบางอย่างลงไปใน timeline ได้ ด้วยการแสดง dialog ให้ผู้ใช้ยืนยันสิทธิ์ดังนี้
FBPermissionDialog* dialog = [[[FBPermissionDialog alloc] init] autorelease];
dialog.delegate = self;
dialog.permission = @"status_update";
[dialog show];
จะมี dialog ขึ้นมาให้ผู้ใช้ยืนยันว่าอนุญาติให้ application ที่กำลังใช้งานอยู่มีสิทธิ์โพสบางอย่างลงไปใน timeline ของตัวเองได้หรือไม่
โดยที่ dialog ที่แสดงขึ้นมาจะมี event อยู่ 2 แบบคือ ตกลง กับ ยกเลิก ซึ่งแต่ละ event จะมีการ call delegate 2 ตัวนี้
- (void)dialogDidSucceed:(FBDialog*)dialog {
}
และ
- (void)dialogDidCancel:(FBDialog*)dialog {
}
4. เมื่อเราได้ permission สำหรับการโพสบางอย่างลงไปใน timeline แล้ว เราสามารถทดลองโพสด้วยการใช้ FBStreamDialog ได้เลยทันที ดังนี้
FBStreamDialog *streamDialog = [[[FBStreamDialog alloc] init] autorelease];
streamDialog.delegate = self;
streamDialog.userMessagePrompt = @"Dialog Prompt";
streamDialog.attachment = attachment;
[streamDialog show];
property ชื่อ attachment ของ FBStreamDialog จะเป็นการกำหนด content ที่เราจะโพสลงไปบน wall ด้วย JSON format ตามที่ได้อธิบายไว้ที่นี่ ซึ่งหากเรากำหนด attatchment เป็นดังนี้
NSString *attachment = @"{\"name\":\"Facebook iPhone SDK\","
"\"href\":\"http://developers.facebook.com/connect.php?tab=iphone\","
"\"caption\":\"Caption\","
"\"description\":\"Description\","
"\"media\":[{\"type\":\"image\","
"\"src\":\"http://img40.yfrog.com/img40/5914/iphoneconnectbtn.jpg\","
"\"href\":\"http://developers.facebook.com/connect.php?tab=iphone/\"}],"
"\"properties\":{\"another link\":{\"text\":\"Facebook home page\","
"\"href\":\"http://www.facebook.com\"}}}";
เราจะได้ dialog หน้าตาแบบนี้หลังจากที่เราสั่งให้ dialog show ขึ้นมาให้เรากรอกค่าอะไรบางอย่างลงไป
และเมื่อกด Publish เราจะได้หน้าตาของสิ่งที่โพสลงไปบน wall ดังนี้
เท่านี้ก็เป็นอันเรียบร้อย
entry นี้ถือเป็น Quick Start Guide ดังนั้นรายละเอียดการเล่นกับ SDK ตัวนี้จะเขียนอธิบายใน entry ต่อๆ ไปครับ :)
ที่มา: Facebook iPhone SDK
Related Link from Roti


0 comments:
Post a Comment