本文章是由機器翻譯。

技術最前線

基本的 Facebook 程式設計:小工具和時間表

Dino Esposito

 

涉及一些基本程式設計方面的 Facebook 上一列中後, 將現在討論的工具和技術來查看和檢索內容從 Facebook 牆上以便分享它通過其他手段來的東西,如業務智慧 (BI) 分析對其進行編目。

不是所有公司都具有相同級別的社會社區世界感興趣的 Facebook 一樣。一節課我學會了,不過,是,在所有公司中,週期性內部部門 — — 通常行銷 — — 最終接近客戶和可能更濃厚的興趣很重要,在有接近公司的客戶。Facebook 粉絲頁面是的數目和工具來吸引連絡人之一的喜好和活動頁面上的水準可以衡量成功的倡議。

程式設計放置何處?為了保持一個 Facebook 頁面,健在,刺激"談論這個人"的數量增加的使用者活動,您需要發佈令人感興趣的內容 — — 和頻繁。有時公司可以負擔得起人只是研究和創造的 Facebook 頁面內容的工作的人員。有時,相反,好的 Facebook 頁面內容來自直定期業務流的公司。在這種情況下,它會有點問題,做他們的正常工作的員工要預留額外的時間,在 Facebook 頁面上報告他們在做什麼。例如,想像一下消息被發送到 Web 網站。內部工作流可能需要編寫的文本,其獲得批准,將它發佈在內部系統中,等待內容管理制度,使其活在網站上。如果在同一個新聞應該發佈到 Facebook,太,大部分時間是同一人打開管理員身份的 Facebook 頁面和只是職位內容手動。它常常作品今天,這種方式,但它不是一個辦法,縮放。這是在 Facebook 程式設計正好放在。

超越過帳

在本專欄的最近分期付款,我處理過帳到 Facebook 牆上的主要議題和構建 Web 網站和桌面應用程式的基礎知識可以與 Facebook 帳戶的使用者進行交互 (你可以看到所有我列在 bit.ly/hBNZA0)。對於企業方案目標牆在哪裡公司的粉絲頁面,方法並不是真的不同了。所有的更改是接收員額的帳戶。

所以 Facebook 程式設計的第一步一定找個以自動化的方式,您的軟體的控制下張貼內容到特定的牆壁上。

隨著時間的推移到公司的粉絲頁面,通常包括行銷傳播、 共用的內容為該公司將成為一個有用的資源。它將成為有價值的資訊,該公司可能想要檢索和進一步分享或分析。這是另一種非常適合於 Facebook 程式設計。

像框構件

快速和簡單的方法,將一些 Facebook 內容添加到您的網站是通過像框構件。該構件列出最近帖子上 Facebook 頁面,以及一個可選的喜歡頁上的使用者清單。對於 Web 網站中使用內容發佈到 Facebook 感興趣,這是完成的第一步。它是重要的是要注意外掛程式的 Facebook 像框社會只打算與 Facebook 粉絲頁一起使用,將不起作用如果您將它連接到一個個人的 Facebook 帳戶。

此外請注意 Facebook 將區分風扇頁和設定檔頁面。底線是風扇頁是對於企業來說,而設定檔頁面都是為個人。允許的操作而言,有兩個之間的一些差異。首先,一組人可以扇頁上有管理員許可權。此外,員額從一個粉絲頁面可以具體針對語言和位置所以他們到達 (嗯,風扇,其實) 最好可以接收他們的追隨者。風扇頁支援其他功能,可以通過廣告宣傳和贊助的文章。

相反,設定檔頁面的目的是,讓業主的朋友和家人保持聯繫。被一位朋友將成為強制性的條件,以獲取更新,即使您可以通過訂閱機制允許非朋友來獲取您的資訊更新。

配置用於 Web 頁的像框不容易。您可以預覽正在顯示的內容和抓取相關的 HTML 直接從 Facebook 開發者網站。轉到 bit.ly/hFvo7y 的現場演示。最後,它是所有有關安排長 URL 以 iframe 元素上設置。圖 1 列出了您可以使用 URL 中的參數。

圖 1 參數配置 Facebook 像框

參數 說明
href 指示到像框中的新功能的 Facebook 粉絲頁面的 URL。
width 指示所需的寬度,以圖元為單位的外掛程式。預設寬度為 300 圖元。
height 指示所需的高度,以圖元為單位的外掛程式。預設的高度不固定的並取決於臉和流是否要顯示。一般情況下,應為它允許 500 圖元為單位),如果您打算將消息流。
計畫 指示該外掛程式的色彩配置。你只有兩個選項:亮或暗。
show_faces 指示是否該外掛程式應顯示個人資料照片。預設值為 True。
Stream - 資料流 指示是否該外掛程式應顯示最新職位從頁面的牆。
標頭 布林型參數,隱藏或顯示預設 Facebook 頭頂部的外掛程式。
border_color 指示該外掛程式的邊框顏色。
force_wall 如果頁面是指一個地方,然後此參數指示是否流應包含員額從的地方牆上或從朋友只簽。預設值為 False。

您所做的一切就是安排一個 URL 並將其綁定到 iframe,如中所示圖 2

圖 2 URL 綁定到 Iframe

<iframe src="//www.facebook.com/plug-ins/likebox.php
  ?href=http://www.facebook.com/etennisnetpage
    &width=292&height=490
    &colorscheme=light
    &show_faces=false
    &stream=true
    &header=true
    &appId=xxxxxxxxxxxxxxx"
  scrolling="no"
  frameborder="0"
  style="border:none; overflow:hidden; width:292px; height:590px;"
  allowTransparency="true">
</iframe>

不用說你也可以在桌面應用程式中嵌入像框中 (例如,Windows Presentation Foundation— — 或 WPF — — 應用程式) 通過 web 瀏覽器控制項。

正如您所看到的該外掛程式允許一些作品大部分時間的快速樣式。但是,如果您想要應用自己的 CSS (的範圍內它是可能的和有案可稽) 應嵌入通過 JavaScript 和 HTML5 的像框。圖 3 顯示了一個示例網站的自訂和定期 (光) 風格像框的輸出。


圖 3 示例像框

該外掛程式的活動

另一種快速方法納入現有的 Facebook 網頁或桌面應用程式 (通過 Web 瀏覽器元件) 具體含量是外掛程式的活動。

相互作用得到的與您的網站通過 Facebook 的使用者具有此外掛程式聚合故事。請注意這裡的目標不是但而是外部網站 Facebook 頁面。示例操作生成這種飼料是根據喜好內容在網站上,觀看視頻,評論和分享來自該網站的內容。該外掛程式也是網站的能夠檢測出是否包含外掛程式活動的當前使用者網站的登錄到 Facebook 或不。如果是這樣,顯示的飼料僅限於使用者的朋友。否則,該外掛程式顯示建議從整個網站,同時為使用者提供登錄 Facebook,接收目標更集中回饋的選項。下面是您需要 (請注意該外掛程式的活動只可消耗,通過 HTML5 標記) 的標記:

<div class="fb-activity"
  data-site="www.yoursite.com"
  data-app-id="xxxxxxxxxxxxx"
  data-width="300"
  data-height="300"
  data-header="true"
  data-recommendations="true">
</div>

您必須納入這類標記的順序中的網頁在 JavaScript SDK,交出什麼是圖 4


圖 4 外掛程式在行動活動

存取時間軸

在過去的列,我使用 Facebook C# SDK 將張貼到牆上純文字和附件。開機自檢後,朋友和粉絲們可以與其進行交互的喜歡它、 共用它,對其進行評論。讓我們看看它所需的讀取給定使用者的時間軸。

Facebook 需要將一個獨特和相當長的 ID 是否分配給任何帳戶的設定檔或風扇頁。使用者,但是,不要使用此 ID 來標識頁。所以第一件事要做,以便讀取時間表是公共的名稱相匹配的頁面 (或使用者) 為基礎的 Facebook id。作為僅僅是練習,您可以到任何瀏覽器的網址列中鍵入以下:HTTPs://graph.facebook.com/your-page-name。

"您頁面名稱"預留位置是只是帳戶的名稱,使之達到頁面的鍵入。打算讀時間軸的 ID 是帳戶的唯一的第一步。您還需要進行身份驗證來訪問飼料。底線是直接違背基本的 Facebook 圖形 API 的任何操作需要 OAuth 認證。這意味著還必須在這裡做討論過去列中相同的初步步驟:

  • 創建 Facebook 應用程式來處理在 Facebook 的後端。
  • 已授權 Facebook 的應用程式為該帳戶的使用者。此步驟提供了將綁定在一起 (為在有限的時間) 使用者的訪問權杖和 Facebook 的應用程式。
  • 使用鍵訪問權杖對 Graph API 從宿主應用程式 (例如,ASP.NETMVC 應用程式) 內執行操作。

一旦獲得,可以保存到 cookie 和用於每個進一步操作,直到它過期的訪問權杖。這裡是從 Facebook 伺服器獲取原料的飼料所需的代碼:

var name = "name-of-the-user"; 
  // For example, joedummy
  var client =
    new FacebookClient(access_token);
  dynamic user = client.Get(name); 
  dynamic feed =
    client.Get(name + "/feed");

Facebook 用戶端第一次調用不嚴格要求訪問權杖,因為預計它只返回公共資訊與使用者有關的。使用者變數公開名字、 值替換 last_name、 id 和位置等屬性。根據你的意圖,您可能不需要放置此調用。Facebook 用戶端第二次調用是什麼真的能起到作用。它需要一個字串,表示使用者的飼料的路徑。您建立連接的帳戶的名稱與 /feed 的路徑的字串。作為回報,你獲取動態 C# 物件構建基礎的 JSON 流出。圖 5 顯示的 JSON 流結構所反映的小提琴手。


圖 5 Facebook 時間表專案的 JSON 結構

它顯示了所選的日誌有兩種類型的行動 — — 它一直喜歡和評論。它目前還計數 14 喜歡。當您擴展節點提供有關對它發表評論或喜歡它的人的更多詳細資訊。最後,您查找職位的內容。JSON 一級職位的內容是郵件欄位。

它是重要的是要注意不是所有的職位具有相同的結構 ; 這是為什麼 Facebook C# SDK 並不使用平原、 靜態定義的類作為資料傳輸物件 (Dto) 的原因。常見的障礙是職位缺乏消息、 連結和圖片,但包括故事欄位。這是如此,例如,當管理員添加的照片集合。

Facebook C# 只是 sdk 您動態 C# 物件。解析到多個定義的資料類型 — — 或決定的物件很好因為是點滴滲透到視圖 — — 是你的電話。圖 6 顯示了一些代碼,嘗試到經典的 C# 類分析的動態物件。

圖 6 解析成一個經典的 C# 類的動態物件

public class FacebookPost
{
  public String PostId { get; set; }
  public String Author { get; set; }
  public String Picture { get; set; }
  public String Link { get; set; }
  public String Published { get; set; }
  public String ContentHtml { get; set; }
  private delegate String ExtractDelegate();
  public static IList<FacebookPost> Import(dynamic data)
  {
    var posts = new List<FacebookPost>();
    foreach (var item in data)
    {
      var tempItem = item;
      var fb = new FacebookPost
      {
        PostId = Extract(() => tempItem["id"]),
        Published = Extract(() => tempItem["created_time"]),
        Picture = Extract(() => tempItem["picture"]),
        Link = Extract(() => tempItem["link"]),
        Author = Extract(() => tempItem["from"]["name"])
      };
      try
      {
        fb.ContentHtml = Extract(() => tempItem["message"]);
      }
      catch
      {
      }
      if (!String.IsNullOrEmpty(fb.ContentHtml))
        posts.Add(fb);
      }
      return posts;
    }
  private static String Extract(ExtractDelegate func)
  {
    try {
      return func();
    } catch {
        return null;
      }
  }
}

此代碼的最令人討厭的一部分就找到檢查給定的屬性是否您解析動態物件上定義的有效途徑。不少 stackoverflow.com 使用者同意中所示的方法圖 6、 基於委託。

社交網路處理開闢了一個全新的世界,成為開發商認為,實現新的創造性應用的機會的可能性。作為.NET 開發人員,您應一個朋友的 Facebook C# sdk。

Dino Esposito 是"構建移動解決方案的企業"(微軟出版社,2012年) 的作者和"程式設計ASP.NETMVC 3"(微軟出版社,2011年) 和他的"Microsoft.NET:構建企業應用程式"(微軟出版社,2008年)。總部設在義大利,埃斯波西托是經常在世界各地的行業活動中發表演講。按照他在 Twitter 上 twitter.com/despos

感謝以下技術專家對本文的審閱中:Scott登斯莫爾 (微軟)
Scott登斯莫爾是高級的發展導致在 Microsoft 工作Visual Studio中的功能。他一直在敏捷開發團隊在大型的公司環境和小型創業公司過去 10 年了。他的主要興趣是雲計算、 行動裝置計算和社交運算。你可以找到他在 scottdensmore.com 和在 Twitter 上 @scottdensmore