반응형
Social Channels
Core Concepts > Social Channels

원문 : http://developers.facebook.com/docs/channels/


 페이스북 플랫폼을 사용하는 한가지 이점은 페이스북 사용자들이 친구들과 함께 앱이나 웹사이트로부터 내용을 공유할 때 사용자가 가지는 잠재적인 지위입니다. 친구의 승인의 힘 때문에 페이스북 플랫폼을 통한 커뮤니케이션은 높은 품질을 가진 상품으로 엄청나게 성장할 수 있도록 도와줍니다. 이 문서는 이용가능한 채널들의 개요를 제공함으로써 귀하의 사용자 경험을 위해 최강 감각적인 것을 선택할 수 있도록 합니다. Unless noted, 모든 채널들은 페이스북 상의 웹사이트들이나 모바일 그리고 앱들을 위해서 동작할 것입니다.

News Feed

 뉴스피드는 페이스북에 로그인 한 사용자들에 대해서 즉시 보여지는데 이것은 페이스북 경험의 핵심입니다. 귀하가 내용을 스트림으로 게재하는 여러 가지 방법들이 있습니다. : Feed Dialog, Feed Graph object 그리고 Like Button 입니다.

Feed Dialog: Prompt Users to Publish

스트림으로 게재하기 위해 추천되어지는 방법은 Feed Dialog 입니다. 사용자가 귀하의 애플리케이션으로 로그인 하기 위해 요청하는 것 없이 또는 어떤 특별한 권한을 부여받는 것 없이 귀하는 사용자들에게 그들이 귀하의 앱에서 하고자 하는 것들에 대한 이야기들을 게재할 수 있습니다. 한 사용자가 게재하기 위해 선택한다면 그 이야기는 사용자의 프로필 상에 나타나기도 하고 사용자 친구의 뉴스피드상에 나타날 것입니다.

 귀하의 애플리케이션으로부터 게재된 이야기들은 귀하의 앱으로의 링크를 포함할 것이고, 풍부한 부착물(기능들?)을  선택적으로 포함할 수 있을 것입니다. 여기 어떻게 한 이야기를 게재하기 위해 사용자가 어떻게 해야하는지 간단한 예제가 있다.:

<html>
    <head>
      <title>My Great Website</title>
    </head>
    <body>
      <div id="fb-root"></div>
      <script src="http://connect.facebook.net/en_US/all.js">
      </script>
      <script>
         FB.init({ 
            appId:'YOUR_APP_ID', cookie:true, 
            status:true, xfbml:true 
         });

         FB.ui({ method: 'feed', 
            message: 'Facebook for Websites is super-cool'});
      </script>
     </body>
 </html> 

 사용자의 브라우저에 페이지가 나타났을 때, JavaScript SDK는 사용자가 그들의 피드로 전송하는 것을 사용할 수 있게 해 주는 아래의 대화창으로 표현할 것입니다.  사용자가 수정하거나 우선적으로 덮어쓰거나 올리는 것을 할 수 있게 하는 대화창을 위한 다른 기본적인 옵션들을 포함하는 피드대화창(Feed Dialog) 옵션들에 대해 좀더 읽으십시요.

상단의 코드는 사용자가 이 대화창을 가지게 합니다.



Feed Graph Object: Publish via the Graph API

 귀하가 사용자의 뉴스피드에 게재하기 위해서 사용자화된 경험을 제공하기를 원할 수 있을 때 몇 가지 경우들이 있다. 귀하는 인증된 귀하의 애플리케이션의 사용자들을 위한 그래프API를 통해서 게재할 후 있고 귀하로부터 'publish_stream' 권한이 부여되어짐으로써 게재할 수 있습니다. 이어지는 POST action 은 위의 예제에 대해서 같은 이야기로 표현할 것입니다.

예를 들면, 귀하는 https://graph.facebook.com/<username>/feed: 의 POST request 를 발행함으로써 사용자의 담벼락에 게재할 수 있을 것입니다.
curl -F 'access_token=...' \
     -F 'message=Facebook for Websites is super-cool.' \
     https://graph.facebook.com/<username>/feed

posting 과 attatchments 또한 페이스북 플랫폼 정책들에 대한 완벽한 문서를 읽으십시요.

Like button

좋아요 버튼은 앱의 사용자로 하여금 당신의 애플리케이션이나 웹사이트에서부터 페이스북에까지 흥미있는 내용을 쉽게 공유할 수 있게 해줍니다. 좋아요 이야기들은 사용자의 담벼락 과 친구들의 뉴스피드에 나타납니다.

 게다가 당신이 Open Graph protocol 을 통해서 메타정보를 명확하게 하려고 한다면 당신의 페이지는 페이스북의 페이지들과 동등해질 것입니다. 이것은 한 사용자가 당신의 페이지에서 좋아요 버튼을 클릭한 때를 의미하는데, 당신의 페이지와 클릭한 사람 사이의 연결이 이루어 진 것입니다. 당신의 페이지가 사용자의 프로필의 "좋아요 와 관심" 영역에 나타나게 된다면 당신은 사용자들의 뉴스피드에 갱신내용들을 게재할 수 있는 능력을 가지게 된 것입니다.
 
구현해야 할 두개의 좋아요 버튼이 있습니다. : XFBML 과 Iframe. XFBML 버전은 좀 더 다용도이지만 JavaScript SDK의 사용을 필요로 합니다.

Requests

 요청은 귀하의 애플리케이션으로 사용자들의 친구들을 초대하기위해 사용자들이 이용할 수 있는 최선의 방법입니다. 요청들은 페이스북 알림들 그리고 대시보들을 함께 통합(포함)하는데, 확실한 것은 사용자가 그들이 페이스북의 어디에 있더라도 그들의 친구들로부터의 요청들을 볼 것입니다. 당신은 사용자가 선물을 받는다던지 질의를 완료하는것과 같은 앱에서의 특정한 행동을 그의 친구들에게 알리기 위한 요청들을 사용할 수 있습니다. 

두가지 타입의 요청들이 있는데 이것들은 앱으로부터 보내질 수 있습니다.

* 사용자가 생성한 요청들 : 이 요청들은 요청 대화창 상의 사용자의 명확한 행동에 의해 확인되어 집니다. 이 요청들은 수락하는 사람에 대한 북마크의 수를 갱신합니다. 당신은 Request Dialog 를 사용해서 요청들을 보낼 수 있습니다.

* 앱이 생성한 요청들 : 이 요청들은 오직 앱으로부터 인증받은 사용자들에게만 초기화되어지고 보내질 수 있습니다. 개발자들은 Graph API를 사요해서 이 요청들을 보낼 수 있습니다. 당신은 사용자가 앱으로 재참여하는 것을 장려하기 위해 북마크의 개수를 갱신하려면 이 요청들을 사용해야만 할 것입니다. (예를들면, 당신의 친구는 게임에서 그녀의 움직임을 멈췄고 이제 당신의 차례다.)

아래의 HTML/JavaScript 예제는 사용자가 생성한 요청이 어떻게 만들어지는지를 보여줍니다. 위의 예제가 로드됬을 때 그 결과는 아래에 이어지는 요청 경험입니다. :
 <html>
   <head>
   <title>My Great Website</title>
   </head>
   <body>
   <div id="fb-root"></div>
   <script src="http://connect.facebook.net/en_US/all.js">
   </script>
   <script>
     FB.init({ 
       appId:'YOUR_APP_ID', cookie:true, 
       status:true, xfbml:true 
     });

     FB.ui({ method: 'apprequests', 
       message: 'Here is a new Requests dialog...'});
   </script>
   </body>
 </html>

이 예제는 Request Form을 표현하기 위해서 JavaScriptSDK를 사용합니다. 위의 예제가 띄워졌을 때, 그 결과는 아래의 요청경헙과 같습니다.


 만약 당신의 앱이 사용자에게 직접적으로 요청들을 보내기를 바란다면(앱이 생성한 요청), 당신은 User Graph 객체의 apprequest 연결에 대한 요청을 보낼 수 있다.

<?php 

  $app_id = YOUR_APP_ID;
  $app_secret = YOUR_APP_SECRET;

  $token_url = "https://graph.facebook.com/oauth/access_token?" .
    "client_id=" . $app_id .
    "&client_secret=" . $app_secret .
    "&grant_type=client_credentials";

  $app_access_token = file_get_contents($token_url);

  $user_id = THE_CURRENT_USER_ID;

  $apprequest_url ="https://graph.facebook.com/" .
    $user_id .
    "/apprequests?message='INSERT_UT8_STRING_MSG'" . 
    "&data='INSERT_STRING_DATA'&"  .   
    $app_access_token . "&method=post";

  $result = file_get_contents($apprequest_url);
  echo("App Request sent?", $result);
?>


 이 메시지 매개변수는 요청을 기술하기 위해 UTF-8 문자열입니다. 데이터 매개변수는 앱이 요청을 처리하기 위해 관련된 어떤 데이터들을 저장하기위해 사용할 수 있는 한 문자열입니다.

 요청을 보냈을 때 사용자가 받은 새요청들은 당신의 애플리케이션의 북마크에 개수로 볼 수 있을 것이고 또한 해당 대시보드 옆의 숫자수가 증가할 것입니다.


 사용자가 당신의 애플리케이션을 로드하기위해 북마크 위를 클릭 했을 때, 페이스북은 URL 쿼리문자열로 두개의 매개변수들을 전달합니다. 바로 ref 와 count 입니다(예를 들면 ref=bookmarks&count=1). ref 매개변수는 "bookmark" 값을 포함하고 있습니다. count 매개변수는 북마크에 설정된 전체 개수를 포함할 것입니다.

사용자들이 대시보드를 통해서 당신의 요청을 받아들였을 때, 페이스북은 request_id 매개변수를 통해서 그들이 행동하는 것을 요청 id로 전달할 것입니다.

 페이스북의 앱을 위한 올바른 공통적인 습관은 만약 한 사용자가 애플리케이션을 띄웠을 때 가지고 있는 어떤 미해결의 요청들이 있다면 발견하고 사용자가 요청들과 관련된 행동들이 진행되기 전에 완료할 수 있도록 시도하는 것입니다. 이방법은 사용자들이 당신의 애플리케이션의 문맥을 벗어난 당신의 요청들을 처리할 수 없도록 합니다. 당신은 Graph API에 있는 User객체의 apprequests 연결에 접근함으로써 주어진 사용자들을 위한 모든 미해결의 요청들에 대해서 결정할 수 있습니다.

아래는 PHP 예제를 설명하는 것인데 어떻게 사용자를 위해서 미해결 요청들에게 접근하는지와 당신이 완료한 관련된 행위들이 있을 때 그 요청들을 삭제하는것을 설명합니다.:

 <?php 

   $app_id = 'YOUR_APP_ID';
   $app_secret = 'YOUR_APP_SECRET';

   $token_url = "https://graph.facebook.com/oauth/access_token?" .
     "client_id=" . $app_id .
     "&client_secret=" . $app_secret .
     "&grant_type=client_credentials";

   $access_token = file_get_contents($token_url);

   $signed_request = $_REQUEST["signed_request"]; 
   list($encoded_sig, $payload) = explode('.', $signed_request, 2);
   $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
   $user_id = $data["user_id"];

   //Get all app requests for user
   $request_url ="https://graph.facebook.com/" .
     $user_id .
     "/apprequests?" .
     $access_token;
   $requests = file_get_contents($request_url);

   //Print all outstanding app requests
   echo '<pre>';
   print_r($requests);
   echo '</pre>';

   //Process and delete app requests
   $data = json_decode($requests);
   foreach($data->data as $item) {
    $id = $item->id;
    $delete_url = "https://graph.facebook.com/" .
    $id . "?" . $access_token;

    $delete_url = $delete_url . "&method=delete";
    $result = file_get_contents($delete_url);
    echo("Requests deleted? " . $result);
   }
 ?>

Automatic Channels

 페이스북 플랫폼 애플리케이션과 웹사이트로의 좀 더 많은 접속을 이끌어내기 위해서, 추가적으로 채널들 위로의, 페이스북은 당신의 애플리케이션들을 사용하는 사람들에 따라 자동적으로 몇가지 분류를 가능하게 했습니다. 당신은 이 분류를 만들어내기 위해 아무것도 아지 않아도 된다. 각각의 자동적인 채널은 사용자들이 참여할 수 있게 도움을 주도록 고안되어졌고 페이스북의 알고리즘은 각각의 사용자들에 대한 최고의 내용이 보여지도록 도와줍니다. 페이스북이 한 상품으로 진화함에 따라, 변화와 성장을 위해 몇가지 채널들이 요구되어집니다. 현재의 자동화 채널들은 다음을 포함합니다. :
  • Bookmarks
    Notifications
    Dashboards
    Usage Stories
    App Profiles & Search

Bookmarks
 
 북마크들은 사용자들이 페이스북 안에서 당신의 애플리케이션으로 탐색해서 돌아오는 것이 가능하게 해줍니다. 북마크들은 사용자가 당신의 애플리케이션에 방문한 후에 당신의 애플리케이션을 위해서 자동적으로 추가되어 집니다. 북마크는 캔버스 페이지의 우측상단에서처럼 그 홈페이지의 좌측 열에 나타날 것입니다.



Notifications

 페이스북에서의 알림들은 사용자와 관련된 내용들에 대하여 관심있는 변화들에대한 가벼운 주제가 아니라 두드러진 내용을 제공하기 위해 의미하는 것입니다. 당신의 애플리케이션으로부터의 요청들은 관련있는 것을 찾고자 하는 사용자들에게 알림을 발생키실 수 있을 것입니다.



Dashboards

 페이스북의 앱들은 두개의 대시보드 중 하나에 나타날 수 있는 기회를 가지고 있습니다. -- Apps 대시보드 그리고 Games 대시보드입니다. 대시보드들은 페이스북의 홈페이지에 북마크된 링크로서 나타나기도 하고 사용자들에게 두드러진 요청들, 그들이 최근에 사용했던 앱들 그리고 사용자의 친구들이 최근에 사용했던 앱들에 대해서 보여줍니다. Application Directory 는 또한 대시보드로부터 접근할 수 있습니다.

Usage Stories

 페이스북에서 친구들과 페이스북의 많은 행동들을 공유할 수 있습니다. 유사하게,  다양한 피드 이야기들이 그들의 친구들이 사용하는 인기있는 애플리케이션의 사용자들과 공유하기위해 게재되어질 수 있습니다. 이 이야기들은 전형적으로 새로운 사용자들에게 애플리케이션을 발견하기위한 한 방법을 제공하기 위해 애플리케이션을 사용하지 않은 사람들에 대해서 목표화되어 집니다.

App Profiles & Search

 각각의 새 애플리케이션들은 그 자신의 앱 프로필 페이지를 가집니다(예를 들어, 페이스북라이브's 페이지를 보십시요). 이페이지는 다른페이지들과 페이스북의 사용자 프로필 페이지들과 유사하고 구성탭처럼 담벼락과 정보탭들을 포함하고 있습니다. 사용자들이 애플리케이션을 찾고자 할 때, 이페이지는 자동완성(typeahead)검색이나 검색결과페이지 상에 보여집니다. 이 페이지로부터, 사용자들은 애플리케이션이나 좋아하는 페이지로 찾아갈 수 있습니다. 당신은 또한 애플리케이션에 관한 뉴스를 담고 있는 프로필 페이지를 좋아하는 사용자들에게 갱신하기위해서 선택할 수 있습니다.

반응형

+ Recent posts