반응형

Facebook Query Language(FQL)
Advanced Topics > Facebook Query Language(FQL)

원문 : http://developers.facebook.com/docs/reference/fql/



 FQL 객체는 Graph API를 사용하여 FQL 쿼리들을 실행할 수 있습니다. Facebook Query Language,  또는 FQL 은, 여러분들이 Graph API 로 볼 수 있는 정보들을 질의하기 위한 SQL 형식의 인터페이스를 사용할 수 있게 해줍니다. FQL 은 Graph API 에서는 이용할 수 없는 몇가지 진보된 특징들을 제공하는데, 그 중에는 한 번 호출함을써 일괄처리하는 다중 질의들을 포함합니다.

Example

"SELECT uid2 FROM friend WHERE uid1=me()" 쿼리는 

GET /fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()&access_token=...

를 실행합니다.


Read

여러분은  /fql?q=query 형태로 HTTP GET 요청을 보낼 수 있습니다. 여기서 query는 단일의 fql 쿼리 또는 여러 쿼리들의 JSON 코드형식 사전이 될 수 있습니다.

Query

쿼리들은 SELECT [fields] FROM [table] WHERE [conditions] 형식으로 되어 있습니다. SQL 과는 다르게 FQL의 FROM 문은 오직 한 가지 테이블만을 담을 수 있습니다. 여러분은 서브쿼리를 수행하기 위해서 SELECT 나 WHERE 절에서 IN 키워드를 사용할 수 있습니다, 그러나 그 서브쿼리들은 쿼리의 범위 밖에서는 참조 변수일 수 없을 것입니다. 여러분의 쿼리는 또한 인덱스를 수행할 수 있어야만 하는데,  아래 문서에 인덱스가능한 것으로 표시된 속성들은 질의할 수 있다는 것을 의미합니다.

FQL 은 간단한 수학, 기본적인 boolean 연산, AND 또는 NOT 은 논리적 연산자들, 그리고 ORDER BY 나 LIMIT 절들을 다룰 수 있습니다.

uid 를 처리하는 몇몇 질의들에 대해서는, 여러분은 로그인 한 사용자를 반환하는  me() 함수를 전할 수 있습니다. 예를 들면 :
SELECT name FROM user WHERE uid = me() 

사용할 수 있는 다른 함수들로는 now()strlen()substr() and strpos() 이 있습니다.

여기에는 활성화한 사용자와 친구들에 대한 모든 사용자 정보를 가져올 수 있는 서브쿼리의 예가 있습니다. :

SELECT uid, name, pic_square FROM user WHERE uid = me()
OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 

Multi-Query

FQL 질의들의 한 묶음을 한 번 호출해서 처리하고 한 번에 데이터를 반환할 수 있습니다.

이 방법은 "queries" 라고 불리는 JSON 코드화된 사전을 실행하는데 각각의 쿼리들을 마치 한개의 간단한 쿼리처럼 정확하게 같은 문법을 사용합니다. 그러나, 이 방법은 좀 더 복잡한 질의들로 만들어지는 것을 허용합니다. 여러분은 한 개의 쿼리로부터 데이터를 가져올 수 있고 같은 호출 안의 다른 쿼리 안에서도 사용할 수 있습니다(가져온 값을 다른 쿼리에서 사용 가능함). WHERE 절은 후자의 쿼리에서는 추가적인데, 그것은 이미 가져온 데이터를 참조하기 때문입니다. 같은 호출에서 다른 쿼리 안의 특정 쿼리 결과를 참조하기 위해서는, #을 앞에 사용함으로써 FROM 절에서 이름을 명확하게 해야합니다. 

예를 들면, 여러분이 이벤트에 참석 중인 사용자에 대한 몇가지 데이터들을 보길 원한다고 해봅시다. 보통, 여러분은 한 줄에서 두 질의를 수행하려고 할 것입니다, 두번째 쿼리가 실행되기 전에 첫번째 쿼리의 결과를 기다리고 있습니다, 그것은 두번째 쿼리가 첫번째 쿼리의 데이터에 의존해 있기 때문입니다. 그러나 fql.multiquery 를 쓰면, 여러분은 동시에 그것을을 실행할 수 있고, 필요로 하는 결과를 모두 얻을 것입니다., fql.query 호출의 묶음을 실행하는 것보다 더 나은 성능을 여러분에게 줄 것입니다. 첫째로, 당신은 사용자 ID 와 각 참석자의 RSVP 상태를 얻을 필요가 있을 것입니다, 그래서 당신은 첫번째 질의를 명확히 할 수 있습니다. - query1 - 다음과 같이:
"query1":"SELECT uid, rsvp_status FROM event_member WHERE eid=12345678"

그 다음으로 참석자의 프로필 정보를 얻으려면(name, URL, 그리고 picture), 두 번째 쿼리를 만들어야만 합니다. – query2 – query1 으로부터의 결과를 참조합니다. 여러분은 query2 를 다음과 같이 명확하게 할 수 있습니다.:

"query2":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1)"

이방법 또한  batch.run. 을 호출한 fql.query의 묶음을 실행하는 것보다 더 나은 성능을 가실 수 있습니다. 


Sample

여기에 fql 질의를 수행하는 예제가 있습니다.

<?php $app_id = 'YOUR_APP_ID'; $app_secret = 'YOUR_APP_SECRET'; $my_url = 'POST_AUTH_URL'; $code = $_REQUEST["code"]; //auth user if(empty($code)) { $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' . $app_id . '&redirect_uri=' . urlencode($my_url) ; echo("<script>top.location.href='" . $dialog_url . "'</script>"); } //get user access_token $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $app_id . '&redirect_uri=' . urlencode($my_url) . '&client_secret=' . $app_secret . '&code=' . $code; $access_token = file_get_contents($token_url); // Run fql query $fql_query_url = 'https://graph.facebook.com/' . '/fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()' . '&' . $access_token; $fql_query_result = file_get_contents($fql_query_url); $fql_query_obj = json_decode($fql_query_result, true); //display results of fql query echo '<pre>'; print_r("query results:"); print_r($fql_query_obj); echo '</pre>'; // Run fql multiquery $fql_multiquery_url = 'https://graph.facebook.com/' . 'fql?q={"all+friends":"SELECT+uid2+FROM+friend+WHERE+uid1=me()",' . '"my+name":"SELECT+name+FROM+user+WHERE+uid=me()"}' . '&' . $access_token; $fql_multiquery_result = file_get_contents($fql_multiquery_url); $fql_multiquery_obj = json_decode($fql_multiquery_result, true); //display results of fql multiquery echo '<pre>'; print_r("multi query results:"); print_r($fql_multiquery_obj); echo '</pre>'; ?>



    Tables

    Query this table to return information about a photo album.

    Query this table to return read-only properties about an application.

    An FQL table containing the requests sent via an app to a user.

    Query this table to return information about a checkin. By default, this query returns the last 20 checkins and returns a maximum of 500 checkins.

    Query this table to obtain comments associated with one or more [fb:comments]

    The comments_info FQL table. Query this table to obtain XIDs for fb:comments objects associated with an application ID.

    Query this table to return a user's friends and the Facebook Pages to which the user is connected.

    Query this table to return information about a cookie.

    Query this table to return the application IDs for which the specified user is listed as a developer in the Developer application.

    The domain table provides a read-only mapping between domain names and ids.

    Query this table to return information about the admin of a domain.

    Query this table to return information about an event.

    Query this table to return information about a user's status for an event or see a list of events for a user.

    Query this table to return detailed information about a user's family.

    Query this table to determine whether two users are linked together as friends.

    Query this table either to determine which users have sent friend requests to the logged-in user or to query whether a friend request has been sent from the logged-in user to a specific user.

    Query this table to return any friend lists owned by the specified user.

    Query this table to determine which users are members of a friend list.

    Query this table to return information about a group.

    Query this table to return information about the members of a group, or retrieve a list of groups of which a user is a member

    The insights table contains statistics about Applications, Pages and Domains

    Query this table to return the user IDs of users who like a given Facebook object (video, note, link, photo, or album).

    Query this table to return the links a user has posted.

    The link_stat table contains counts that show how users on Facebook are interacting with a given link.

    The mailbox_folder table contains information about a user's mailbox folders.

    Query this table to return information about messages in a thread.

    Query this table to return the notes the current user has written or to return details for a particular note.

    Query this table to get the notifications for the current session user, that is, any notification that appears on http://www.facebook.com/notifications.php.

    Query this table to return information about a URL in the Open Graph

    Query this table to return information about a Facebook Page.

    Query this table to return information about which Facebook Pages the user Admins.

    An FQL table that can be used to return a list of a users that are blocked from a Facebook Page.

    Query this table to return information about the user who likes a Facebook Page.

    Query this table to return the permissions the current user has granted to the app.

    Query this table to return more descriptive information about extended permissions.

    Query this table to return information about a photo.

    Query this table to return information about a photo tag.

    Query this table to return information about a place.

    Query this table to return a user's privacy setting for a given object_id.

    Query default privacy settings for a user for a particular app

    Query this table to return certain (typically publicly) viewable information for a profile.

    A Question as represented in FQL.

    An option for a question, as represented in FQL.

    The votes on a particular option for a question, as represented in FQL.

    Query this table to obtain reviews associated with an application, a user or both.

    Query this table to determine whether two users are linked together as friends.

    Query this table to return standard information about a user, for use when you need analytic information only.

    Query this table to return one or more of a user's statuses.

    Query this table to return posts from a user's stream or the user's profile.

    Query this table to return a filter_key that can be used to query the stream FQL table, as seen through any content filters the user has available on Facebook.

    Query this table to return associations between users or Facebook Pages and the items they tag in status posts.

    Query this table to return information about message threads in a user's Inbox.

    Query this table to return the native strings (original, untranslated text in your application interface) and the translated strings for your application.

    This table can be used to access information about messages in the new Facebook messaging system.

    This table can be used to access information about threads in the new Facebook messaging system.

    This table should be used to access information about subscribe and unsubscribe actions performed on a thread in the new Facebook messaging system.

    This table should be used to access information about the number of threads in a folder in the new Facebook messaging system.

    An FQL table containing the Open Graph URLs that the current session user has Liked.

    Query this table to return detailed information from a user's profile.

    The video table contains information about videos.

    The video_tag table contains information about users tagged in videos.



    반응형
    반응형

    Authentication

    Core Concepts > Authentication

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

    flow : 흐름이 어울릴 때도 있고... 방법/방식이라고 하면 어울릴 때도 있고...;;;


    페이스북 플랫폼은 인증과 권한에 대해서 OAuth 2.0 protocol 을 사용합니다. 페이스북은 여러분의 웹사이트, 모바일, 그리고 데스크탑 앱에서 사용할 수 있는 서로 다른 개수의 OAuth flows 를 지원합니다.

    이문서는 각각의 OAuth flows를 지원하기 위해 페이스북이 사용하는 서로 다른 기술적흐름을 설명합니다. 이문서에서 예제는 서버사이드 프로그래밍에 대해서는 PHP를 사용하고 클라이언트 코드에 대해서는 HTML/JavaScript를 사용합니다. 이러한 예제들은 매우 직선적(분명하고)이고 쉽게 다른 개발언어로 전환할 수 있습니다. 

    User Login

    페이스북 플랫폼은 서로다른 2가지의 OAuth 2.0 flows를 지원합니다. 하나는 server-side(명세서에 인증코드흐름으로 알려진 것) 이고 다른 하나는 client-side(내재적 흐름으로 알려진 것) 입니다. 서버측 방식은 여러분의 웹 서버로부터 Graph API를 호출하려고 할 때마다 사용되어집니다. 클라이언트측 방식은 클라이언트로부터 Graph API 호출을 만들 때마다 사용되어지는데, 마치 웹 브라우저나 모바일 또는 데스크탑에서 자바스크립트가 실행중인 것과 같습니다. 

    여러분이 사용하는 흐름에 상관없이, OAuth 2.0 에 대한 구현은 3가지 다른 단계를 포함합니다. : 사용자 인증, 앱권한 그리고 앱인증 입니다. 사용자 인증은 일반 사용자를 확인하는 것을 말합니다. 앱권한은 여러분의 앱의 사용자들이 여러분의 앱에 그들이 제공할 수 있는 데이터와 능력을 정확하게 아는 지(권한을 행사할 수 있는지)를 확인하는 것입니다. 앱인증은 사용자가 당신의 앱에 다른 사람의 것이 아니라 본인들의 정보를 주는지를 확인 하는 것입니다. 이 단계들이 완료됬을 때, 여러분의 앱에 access token 이 발행될 것이고 사용자 정보에 접근할 수 있을 것이며 사용자에 대해 행동을 수행할 수 있을 것입니다.

    Server-side Flow

    사용자 인증과 앱권한은 사용자에게 OAuth 대화창으로 보내짐으로써 같은 시간(동시에)에 처리되어 집니다. 이 대화창을 호출했을 때, 여러분은 Developer App 에서 여러분의 앱을 생성했 만들어진 여러분의 앱에 대한 아이디를 보내야만 하고(the client_id parameter) 앱인증이 끝났을 때 돌아갈 사용자 브라우저의 URL도 보내야만 합니다(the redirect_uri). redirect_uri 는 여러분이 개발자 앱의 요약 탭의 웹사이트 섹션의 요약부분에 명시한 사이트 URL의 경로에 있어야만 합니다. 주의하셈, 여러분의 redirect_uri는 redirector가 될 수 없습니다.
    https://www.facebook.com/dialog/oauth?
         client_id=YOUR_APP_ID&redirect_uri=YOUR_URL

    좀 더 많은 정보를 원한다면 아래의 Alternate Redirect URIs section 을 보십시요.

    만약 사용자가 이미 로그인 했다면, 페이스북은 사용자의 브라우저에 저장한 로그인 쿠키를 검증할 것이고 그 사용자를 인증할 것입니다. 만약에 사용자가 로그인하지 않았다면, 사용자들은 그들의 신용정보를 입력해야 할 것입니다.


    페이스북이 성공적으로 사용자를 인증했을 때, OAuth 대화창은 앱에 권한을 주려고 할 것입니다.


    기본적으로, 사용자가 앱에 접근하려면 권한을 받기 위해 이용가능한 정책 또는 페이스북에 대한 기본적인 정보로 질의를 받습니다. 만약에 여러분의 앱이 좀 더 많은 기본적인 정보들을 필요로 한다면, 여러분은 사용자로부터의 특정한 권한을 요청해야만 합니다. 이것은 OAuth 대화창에 요청되는 권한을 콤마로 분리된 목록으로 scope 매개변수에 추가함으로써 이루어집니다. 아래의 예는 사용자의 이메일 주소와 그들의 뉴스피드에 접근하려면 어떻게 질의해야하는지를 보여줍니다.

    https://www.facebook.com/dialog/oauth?
         client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream

    아래 대화창의 결과는 사용자들이 인증받은 후에 보여집니다. :


    승인의 모든 목록은 페이스북의 permissions reference 에서 이용할 수 있습니다. 여러분의 앱으로의 요청하는승인의 수와 그 요청들을 승인하는 것을 허락하는 사용자들의 숫자 사이에 강한 반대의 상관관계가 있습니다.
    당신이 질의하려는 승인의 최대 수에 대해서, 그것에 권한을 부여할 사용자의 수가 매우 적을 수 있습니다; 그래서 페이스북은 여러분이 앱을 위해 절대적으로 필요로하는 승인에 대해서만 요청하기를 권장합니다.

    만약 사용자가 허가안함을 누른다면, 여러분의 앱은 승인되지 않을 것입니다. OAuth 대화창은 여러분이 보낸 오류정보를 포함한 redirect_uri 매개변수의 URL로 사용자의 브라우저에 재전송(redirect) (HTTP 302를 통해) 할 것입니다. 

    http://YOUR_URL?error_reason=user_denied&
         error=access_denied&error_description=The+user+denied+your+request.
    만약 사용자가 허가함을 누른다면, 여러분의 앱은 승인될 것입니다. OAuth 대화창은 여러분이 보낸 인증코드를 포함한 redirect_uri 매개변수의 URL로 사용자의 브라우저에 재전송(redirect) (HTTP 302를 통해) 할 것입니다. 
    http://YOUR_URL?code=A_CODE_GENERATED_BY_SERVER

    손으로 쓴 이 코드와 함께, 앱인증, API 호출을 위해 필요한 access token 을 얻기 위해서, 여러분은 다음 단계로 나아갈 수 있을 것입니다.

    여러분의 앱을 인증하기 위해서, 여러분은 인증코드와 app secret을 https://graph.facebook.com/oauth/access_token. 에 redirect_uri가 붙은 Graph API 끝에 붙여서 보내야만 합니다.  app secret은 Developer App 에서부터 이용가능하고 어느누구에게 공유되어지거나 당신이 배포하는 어떤 코드에 포함되서는 안 됩니다(여러분은 이 이나리오를 클라이언트측 흐름에서만 사용해야 합니다).

    https://graph.facebook.com/oauth/access_token?
         client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&
         client_secret=YOUR_APP_SECRET&code=THE_CODE_FROM_ABOVE

    만약 당신의 앱이 성공적으로 인증되었고 사용자의 권한코드가 유효한 것이라면, 그 인증서버는  access token을 반환할 것입니다. 


    추가적으로 access token(access_token 매개변수)에 대해서, 응답이 토큰이 만료될 때까지 수초동안 토큰을 가지고 있습니다(expires 매개변수). 토큰이 만료됐을 때, 비록 사용자가 여러분의 앱에 대한 권한을 가지고 있더라도, 여러분은 새로운 코드와 access_token을 생성하는 단계를 재실행 해야 할 필요가 있으며, 그것들은 다시 시작될 수 없습니다. 만약 여러분이 무한한 만료시간의 access token을 원한다면(아마 사용자들이 당신의 앱을 사용한 후에 행동이 있다면), 당신은 offline_access 승인을 요청할 수 있습니다.

    여기에는 앱에 대한 인증 이슈가 있는데, 권한 서버가 HTTP 400 을 알리고 응답의 내부에 오류를 반환할 것입니다. 

    {
       "error": {
          "type": "OAuthException",
          "message": "Error validating verification code."
       }
    }
    
    아래의 그림은 서버측 흐름을 통한 HTTP 호출에 대해 그렸습니다.:



    이어지는 PHP 예제는 단독으로 실행가능한 CSRF protection 에 대한 서버측 흐름을 설명합니다.:
     <?php 
    
       $app_id = "YOUR_APP_ID";
       $app_secret = "YOUR_APP_SECRET";
       $my_url = "YOUR_URL";
    
       session_start();
       $code = $_REQUEST["code"];
    
       if(empty($code)) {
         $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
         $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
           . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
           . $_SESSION['state'];
    
         echo("<script> top.location.href='" . $dialog_url . "'</script>");
       }
    
       if($_REQUEST['state'] == $_SESSION['state']) {
         $token_url = "https://graph.facebook.com/oauth/access_token?"
           . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
           . "&client_secret=" . $app_secret . "&code=" . $code;
    
         $response = @file_get_contents($token_url);
         $params = null;
         parse_str($response, $params);
    
         $graph_url = "https://graph.facebook.com/me?access_token=" 
           . $params['access_token'];
    
         $user = json_decode(file_get_contents($graph_url));
         echo("Hello " . $user->name);
       }
       else {
         echo("The state does not match. You may be a victim of CSRF.");
       }
    
     ?>

    Client-Side Flow

    클라이언트측 흐름은 사용자 인증과 앱의 권한에 대해서 OAuth 대화창을 사용합니다. 오직 다른 한 가지는 response-type 매개변수의 token 값을 명시해야만 한다는 것입니다.:
    https://www.facebook.com/dialog/oauth?
         client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&response_type=token

    서버측 흐름에 따라, 여러분은 scope 매개변수를 사용해서 추가적인 승인을 요청할 수 있습니다.:

    https://www.facebook.com/dialog/oauth?
         client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream&
         response_type=token

    사용자가 인증되고 앱에 대한 권한을 받았을 때, 브라우저는 redirect_uri를 리다이렉트 하겠지만 서버측흐름에서는 권한 코드(code 매개변수를 통해서)를 전달하는 대신, redirect_uri는 URI 요소에 access token을 전달할 것입니다.(#access_token).:

    http://YOUR_URL#access_token=166942940015970%7C2.sa0&expires_in=64090

    access token 이 URI 요소로 전달되어지기 때문에, 클라이언트측 코드(브라우저에서 실행되는 자바스크립트나 웹을 제어하기위해 호스팅하는 데스크탑 코드)는 token을 추출할 수 있습니다. 앱인증은 개발자 앱의 Site URL로 설정되어 있는 같은 경로의 redirect_uri가  다양하게 처리되어 집니다. 좀더 많은 정보를 보려면  Alternate Redirect URIs 영역을 보십시요.

    아래의 그림은 클라이언트측 흐름을 통해 HTTP 호출을 만든는 것을 나타냅니다. :


    이어지는 HTML/JavasScript 예제는 자기스스로 실행할 수 있는 예제들을 보여줍니다. :

     <html> 
       <head> 
         <title>Client Flow Example</title> 
       </head> 
       <body> 
       <script> 
         function displayUser(user) {
           var userName = document.getElementById('userName');
           var greetingText = document.createTextNode('Greetings, '
             + user.name + '.');
       userName.appendChild(greetingText);
         }
    
         var appID = "YOUR_APP_ID";
         if (window.location.hash.length == 0) {
           var path = 'https://www.facebook.com/dialog/oauth?';
       var queryParams = ['client_id=' + appID,
         'redirect_uri=' + window.location,
         'response_type=token'];
       var query = queryParams.join('&');
       var url = path + query;
       window.open(url);
         } else {
           var accessToken = window.location.hash.substring(1);
           var path = "https://graph.facebook.com/me?";
       var queryParams = [accessToken, 'callback=displayUser'];
       var query = queryParams.join('&');
       var url = path + query;
    
       // use jsonp to call the graph
           var script = document.createElement('script');
           script.src = url;
           document.body.appendChild(script);        
         }
       </script> 
       <p id="userName"></p> 
       </body> 
      </html>
    

    Using the Acces Token

    여러분은  Graph API 요청(그리고 Legacy REST API)에 access_token 매개변수 를 추가함으로써 Graph API를 유효한 access token으로 호출할 수 있습니다. :

     https://graph.facebook.com/me?access_token=ACCESS_TOKEN 
    

    만약에 사용자가 패스워드를 변경했다면, access token 은 만료되거나 그 사용자는 App Dashboard 에서 당신의 앱에 대한 권한이 해제될 것이고, Graph API HTTP 400 를 발행할 것이고 응답으로 오류를 반환할 것입니다. :

    {
       "error": {
          "type": "OAuthException",
          "message": "Error validating access token."
       }
    }  
    

    당신의 앱은 이러한 오류가 발생했을경우 적절한 흐름을 재수행함으로서 새로운 access token을 요청할 수 있습니다.

    App Deauthorization

    여러분의 앱 사용자가 App Dashboard 에서 앱을 제거하거나 뉴스피드에서 앱을 차단시키면, 당신의 앱은  Developer App 의 Deauthorize Callback URL 을 명시함으로써 알림을 받을 수 있습니다. 앱이 제거되는 동안 우리는 signed_request 인 단일 매개변수를 포함한 HTTP POST 요청을 보낼 것입니다. signed_request는 당신의 앱을 제거한 사용자의 id(UID)를 포함하고 있습니다. 당신은 이 요청에서는 사용자의 access token 을 받지 못할 것이고 모든 존재하는 사용자 access token은 자동적으로 만료될 것입니다.

    Alternate Redirect URIs

    redirect_uri 들이 인증 흐름에서 명시되어질 때, 사용자는 보편적으로 개발자앱의 요약탭의 기본정보부분에 여러분이 명시한 Site URL 경로에 대해 리다이렉트되어질 수 있습니다. 그러나 여러분은 이 행위를 덮어쓸 수 있고 개발자앱의 요약탭의 기본정보부분의 앱 도메인 필드의 각각의 도메인 이름을 명시함으로써 하나 또는 그 이상의 관련되거나 하위의 도메인들을 리다이렉트 할 수 있습니다.:


    예를 들어, 여러분의 앱에 추가적인 앱 도메인들을 명시하는 것은 서버부하의 지리적 분산을 위해서 다른 서버들로 사용자들을 리다이렉트 하는 것은 유용합니다.

    그러나 redirect_uri는 redirector 일 수 없다는 것을 명심하십시요.

    Logout 

    여러분은 아래의 URL을 사용함으로써 사용자들의 페이스북 세션을 벗어나는 사용자 로그를 남길 수 있습니다.:
    https://www.facebook.com/logout.php?next=YOUR_URL&access_token=ACCESS_TOKEN 

    Developer App 의 정의에 따라 YOUR_URL 은 여러분 사이트 도메인의 URL이어야만 합니다.



    App Login

    추가적인 사용자 로그인은, 페이스북 플랫폼은 OAuth 2.0 클라이언트 신용 흐름을 사용하는 App Login을 제공합니다. App Login은 여러분이 앱에 대한 다양한 관리적 활동을 수행하는 것을 허용하는데, Insights 데이터를 가져오거나 요청을 승인하는 것들을 의미합니다. app access token 을 요구하는 Graph API 를 호출하는 것은 명백하게 API 문서에 표시되어 있습니다.

    당신은 https://graph.facebook.com/oauth/access_token 의 Graph API token 끝에 app id, app secret 그리고 grant_type 매개변수의 client_credentials를 명시함으로써 app access token을 얻을 수 있습니다. app id 와 app secret은 둘 다 당신의 앱이 Developer App 에서 만들어졌을 때 생성됩니다.
    https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials

    위의 URL에 대한 HTTP GET 요청을 보내는 것은 그 응답의 내부에 access_token을 반환할 것입니다.:


    그리고 여러분은 Graph API(App Insights 처럼) 의 특정한 부분을 앱이 호출할 때 이 access token을 사용할 것입니다.:

    https://graph.facebook.com/YOUR_APP_ID/insights?access_token=TOKEN_FROM_ABOVE


    Page Login

    페이스북 페이지는 사용자와 앱로그인 에 대해서 약간 다른 흐름을 따릅니다. 모든 페이지는 하나 또는 그 이상의 관리자를 가지는데 관리자는 페이지에 대해서 특별히 허가된 운영을 수행할 수 있습니다. 여러분의 앱에 대해 이러한 특별히 허가된 운영을 수행하기 위해서, 사용자는 당신의 앱에 manage_pages 승인을 부여받아야만 합니다.:
    https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=manage_pages&response_type=token


    관리자가 여러분의 앱에 이 승인을 부여했을 때, 당신은 User Graph API 의 계정연결에 접근할 수 있습니다.:

    https://graph.facebook.com/me/accounts?access_token=TOKEN_FROM_ABOVE

    이 연결은 각페이지에 대하여 특정한 access token을 포함하는 페이지의 사용자 관리자들에 대한 모든 페이지들의 목록을 반환합니다. :


    여러분은 해당 페이지의 사용자를 위해서 관리 활동을 수행하기 위한 주어진 페이지를 위해서 전달된 access token을 사용할 수 있습니다.



    App Types

    페이스북 플랫폼은 서로 다른 앱 형식의 OAuth 흐름 위에서 사용하기 위한 여러 가지의 방법들을 제공하는데,  WebsitesApps on Facebook.comMobile 그리고 Desktop Apps 들을 포함합니다.

    Websites

    페이스북의 Website Getting Started Guide 는  JavaScript SDK 과 Login Social Plugin를 사용해서 여러분의 웹사이트에 사용자 로그인을 추가하는 개요를 제공합니다.

    App on Facebook.com

    페이스북의 Apps on Facebook.com Getting Started Guide 는 여러분의 앱을 페이스북의 핵심경험으로 통합할 때 어떻게 사용자 로그인을 다뤄야 하는지에 대해 세세한 부분을 제공합니다.

    Mobile Apps

    Mobile App Getting Started Guide 는 페이스북의 mobile SDKs 를 어떻게 사용해야 하는지와 모바일에서 사용자 로그인을 수행하기위해 OAuth 대화창으로의 모바일지원부분을 부각시켜서 설명했습니다.

    Desktop Apps

    OAuth 2.0 구현은 특정한 데스크탑 앱 지원만을 포함하지 않습니다. 그러나, 만약 여러분의 데스크탑 앱이 웹 브라우저(대부분의 데스크탑 프레임워크 예로 .NETAIR 와 Cocoa 는 브라우저에 포함되어 지원합니다.)에 포함되어 있다면, 당신은 한 가지 수정(특정한 redirect_uri)만으로 client-side flow 를 사용할 수 있습니다. 개발자 앱에서 데스크탑 앱의 웹 서버와 인기있는 Site URL을 호스트 하기를 요구하는 것보다, 페이스북은 데스크탑 앱과 함께 사용할 수 있는 특정한 URL을 제공합니다.:https://www.facebook.com/connect/login_success.html.
     
    • 끼워진 웹 브라우저 그리고 클라이언트측 흐름을 사용하는 OAuth Dialog 로딩 (https://www.facebook.com/dialog/oauth)(i.e. response_type=token):
    https://www.facebook.com/dialog/oauth?
        client_id=YOUR_APP_ID&
        redirect_uri=https://www.facebook.com/connect/login_success.html
    • 사용자가 앱으로부터 권한을 얻은 후에, 페이스북은 사용자가 돌아올 수 있게 URI 요소에 있는 redirect_uri를 access token과 함께 리다이렉트 합니다.:
    https://www.facebook.com/connect/login_success.html#access_token=...
    • 이와 같은 리다이렉트를 인지하고 그 다음에 여러분의 프레임워크에 의해 제공되는 기술을 사용하는 URI읠 밖에서 access token을 읽으십시요. 


    Security Considerations

    Cross Site Request Forgery(CSRF)

    Cross site request forgery 는 신뢰할 수 있는(인증받고 권한을가진) 웹사이트에서 사용자가 모르는 행동을 수행하는 공격을 말합니다. 이러한 공격을 막기 위해서는, 여러분은 state 매개변수에 식별자를 전달해야만 하고, 그리고나서 그 응답에 대해서 state 매개변수가 일치하는지 검증하면 됩니다. 페이스북은 페이스북 사용자 로그인을 구현하는 앱들이 이 매커니즘을 사용해서 CSRF 보호를 구현하는 것을 적극 추천합니다.

    Redirect_URI

    여러분은 redirect_uri 에 대해서 redirector를 명시할 수 없다는 것을 인지하십시요. OAuth 2.0 10.15 를 방문해서 더 자세하게 보세요.
     

     


    반응형
    반응형
    Graph API
    Core Concepts > Graph API

    원문 : http://developers.facebook.com/docs/reference/api/

    - 초반부분 번역하다가 중반쯤부터 듬성듬성 건너뛰었습니다. ㅎㅎ

     페이스북의 핵심은 소셜 그래프 입니다. ; 그래프는 그들이 관심을 가지고 있는 사람 그리고 연결(관계/인맥?)과 같은 모든 것을 포함합니다. 그래프 API는 페이스북 소셜 그래프의 간단하고 한결같은 관점을 표현하고, 그래프(예를들면, 사람,사진,이벤트,페이지) 안의 객체들과 그들 사이의 관계(예를들면, 친구관계, 공유물그리고 사진태크)들을 일관되게 표현합니다.

     소셜 그래프에서 모든 객체들은 유일한 ID를 가지고 있습니다. 당신은 https://graph.facebook.com/ID 로 요청함으로써 객체의 속성들에 접근할 수 있습니다. 예를 들면, 페이스북 플랫폼의 공식페이지는 id 19292868552 인데, 그래서 당신은 https://graph.facebook.com/19292868552 로 객체를 가져올 수 있습니다.

    {
       "name": "Facebook Platform",
       "type": "page",
       "website": "http://developers.facebook.com",
       "username": "platform",
       "founded": "May 2007",
       "company_overview": "Facebook Platform enables anyone to build...",
       "mission": "To make the web more open and social.",
       "products": "Facebook Application Programming Interface (API)...",
       "likes": 449921,
       "id": 19292868552,
       "category": "Technology"
    }

    다른 대안으로는,  ID 처럼 사용자이름(username)으로 사람과 페이지에 접근할 수 있습니다. "platform"이 해당페이지에 대한 사용자이름이기 때문에, https://graph.facebook.com/platform 은 여러분이 예상하는 것을 반환할 것입니다.  모든 응답들은 JSON 객체일 것입니다.

    페이스북의 모든 객체들은 다 같은 방법으로 접근할 수 있습니다.


    페이스북 소셜 그래프의 모들 객체들은 관계를 통해서 각자 서로에게 연결되어져 있습니다. Bret Taylor 는 코카콜라 페이지의 팬이고, Bret Taylor 와 Arjun Banker 는 친구입니다. 우리는 우리의 API로 그러한 관계 연결들은 가져옵니다. 당신은 객체들 사이의 연결을 https://graph.facebook.com/ID/CONNECTION_TYPE URL구조를 사용해서 조사할 수 있습니다. 그 연결들은 아래에 있는 사람들과 페이지들을 위해 제공되어 집니다.


    우리는 서로 다른 객체들에 대해서 다른 연결 형을 지원합니다. 예를 들면, 당신은 https://graph.facebook.com/331218348435/attending?access_token=....를 가져옴으로써 SXSW(ID #331218348435)인 페이스북 개발자 모임에 소속해 있는 모든 사람들의 목록을 가져올 수 있습니다.

    우리가 지원하는 객체와 연결들의 모든 다른 형들은 그래프 API 참조문서(Graph API reference documentation)에 포함되어져 있습니다. 가장 쉽게 시작하는 방법은 Graph API Explorer 로 탐색하는 것입니다.


    Authorization

     그래프 API는 당신이 객체와 관련한 모든 공공(공개된?) 정보에 쉽게 접근할 수 있도록 허용해 주는 것과 같은 것입니다.  예를 들면, https://graph.facebook.com/btaylor (Bret Taylor) 는 Bret 에 관한 모든 공개된 정보를 반환합니다. 예를 들면, 사용자의 이름, 가족이름 그리고 개인정보사진들은 공개적으로 이용할 수 있습니다.

     사용자에 대한 추가적인 정보를 얻기 위해서, 첫째로 당신은 사용자들의 권한을 얻어야만 합니다. 높은 레벨에서, 당신은 페이스북 사용자에 대한 access_token을 가질 필요가 있습니다. 당신이 사용자에 대한 access_token을 획득한 후에, 당신은 권한 있는 요청들을 수행할 수 있습니다. 

    https://graph.facebook.com/220439?access_token=...
    

    예를 들면 https://graph.facebook.com/btaylor?access_token=... (Bret Taylor) 은 Bret Taylor에 대한 추가적인 정보들을 반환합니다. 

     Graph API는 인증을 위해 OAuth2.0을 사용합니다. 페이스북의 OAuth2.0을 구현한 인증가이드라인을 읽고 사용자로부터 어떻게 권한을 요청하고 access token을 얻는지 확인하세요.

     access token을 얻는데는 추가적인 권한이 필요하지 않지만 이메일이나 현재 회사정보 등을 가져오려면 추가적인 권한 정보가 필요할 것입니다.

    Page Login
    manage_pages permission.

    App Login 
    app access token.

    Reading

    Selection
    https://graph.facebook.com/bgolub?fields=id,name,picture 처럼 field param을 사용해서 원하는 요소들에 대한 값을 받을 수 있습니다.
    https://graph.facebook.com?ids=arjun,vernal 단일 쿼리로 복수의 객체를 받을 수 있습니다.
    ids param은 url도 받습니다. https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/

    Pictures

    아래와 같이 /picture 접미어를 사용해서 프로필 사진을 가져올 수 있습니다.:

    Paging
    필터하거나 페이징 할 수도 있습니다.

    Dates
    date_format param을 사용하는데 ISO-8601로 반환되며 php date function으로도 받아집니다. 예는 다음과 같습니다.  http://graph.facebook.com/platform/feed?date_format=U

    Introspection
    객체 URL에 metadata=1을 붙이면 객체가 가진 모든 연결정보들을 가져올 수 있습니다.  https://graph.facebook.com/331218348435?metadata=1

    Real-Time updates 
    real-time updates는 앱의 사용자들에 대한 바뀐 정보들에 대해 가져올 수 있는 권한을 제공합니다. 

    Searching

    social graph 상의 모든 공용 객체들을 검색할 수 있습니다. : 

    You can search over all public objects in the social graph with https://graph.facebook.com/search. The format is:

    https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE
    

    아래와 같은 객체 형식들도 지원합니다.:

    fields= URL paramete의 사용:

    Some fields such as id, and start_time for events, are always returned.

    homeconnection URL을 사용한 뉴스피드 검색:


    Publishing
    access token을 사용한 HTTP POST 요청을 사용해서 페이스북 그래프에 게재할 수 있습니다.
    https://graph.facebook.com/arjun/feed:
    curl -F 'access_token=...' \
         -F 'message=Hello, Arjun. I like this new API.' \
         https://graph.facebook.com/arjun/feed

    각각 /comments 나 /likes 를 사용해서 보낼 수 있습니다.
     
    https://graph.facebook.com/OBJECT_ID/comments 
     
    https://graph.facebook.com/OBJECT_ID/likes :

    curl -F 'access_token=...' \
         https://graph.facebook.com/313449204401/likes
    


    Deleting
     
    객체 url에 대한 HTTP DELETE 요청을 실행함으로써 객체를 삭제할 수 있습니다. 예시,

    DELETE https://graph.facebook.com/ID?access_token=... HTTP/1.1
    

     POST 요청을 사용해서실행하는 방법이 있습니다. method=delete 를 param 값으로 사용하면 되는데 예시는 아래와 같습니다.
    https://graph.facebook.com/COMMENT_ID?method=delete
    .

    Analytics

    Insights
     로 앱에 대한 통계를 알 수 있고 데이터를 받으려면 먼저 app access token 가 있어야 합니다. 여러분의 앱이 access token을 가지고 있을 때 다음의 url로 분석 데이터를 받을 수 있습니다.
    https://graph.facebook.com/app_id/insights?access_token=...

    API를 통해서 다양한 분석 데이터들을 이용할 수 있으며 다음은 앱의 캔버스 페이지에 대한 노출수에 대한 url 입니다.:

    https://graph.facebook.com/app_id/insights/application_canvas_views/day?access_token=...

    또한 시간 범위에 대한 데이터도 이용할 수 있ㅅ브니다.:

    https://graph.facebook.com/app_id/insights?access_token=...&since=yesterday

    /insights URL 을 기반으로  Insights  상품을 탐색할 수 있습니다.


    Batch Request

    여러분의 앱이 중요한 많은 양의 데이터에 접근하거나 여러 객체들의 변경을 할 때, 다중의 HTTP 요청을 생성하는 것보다 이러한 연산들을 결합하는 좀 더 중요합니다.

    요청들을 일괄처리 하려면, documentation 을 읽어보세요.
    Concepts

    If your application needs the ability to access significant amounts of data in a single go - or you need to make changes to several objects at once, it is often more efficient batch your queries rather than make multiple individual HTTP requests. To enable this, the Graph API support Batching. Batching allows you to pass instructions for several operations in a single HTTP request.

    Permissions to access GRAPH API fields and connections.

    The Graph API supports real-time updates to enable your application using Facebook to subscribe to changes in data from Facebook. Your application caches data and receives updates, rather than polling Facebook’s servers. Caching data and using this API can improve the reliability of your application and decrease its load times.

    Object

    Instance for an achievement for a user.

    A photo album

    An application registered on Facebook Platform

    A checkin made through Facebook Places or the Graph API.

    A Comment on a Graph API object

    A website domain within the Graph API

    A Facebook event

    A Facebook friend list

    A Facebook group

    Statistics about applications, pages, or domain.

    A shared link

    A message in a thread

    A Facebook Note

    An order object associated with Facebook Credits.

    A Facebook Page

    An individual photo within an album

    An individual entry in a profile's feed

    A question asked by a user, as represented in the Graph API.

    An option allowed as an answer to a question.

    A review for an application

    A status message on a user's wall

    A subscription to an application to get real-time updates for an Graph object type.

    A message thread

    A user profile.

    An individual video



    반응형
    반응형
    Open Graph Protocol
    Core Concepts > Open Graph Protocol

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

     Open Graph Protocol 은 페이스북의 웹 페이지들을 Social Graph 로 나타낼 수 있게 도와주며 또한 Social Graph에서 좀 더 부각될 수 있도록 도와줍니다. Open Graph 라는 것은 actions 와 Objects 기반의 활동인데 페이스북에서는 Like Button을 클릭하는 행동과 같은 것을 의미하는 것 같습니다. 어떤 페이지에 대한 Like Button을 클릭하면 페이스북은 사용자와 페이지 사이의 연결관계를 만듦니다. 그 관계를 성립하기 위한 프로토콜이 Open Graph이고 이러한 관계들을 표현하는 것이 Social Graph 인 것 같습니다.(맞나요? ㅎㅎ) 이러한 관계들은 사용자가 특정 광고의 타겟이 되는 것에 사용되도 합니다. 그리고 페이스북의 개발자들은 페이스북의 페이지들을 표현하기 위해서 <meta> tag와 Like Button 으로  Open Graph Protocol 이 제공하는 구조화된 데이터를 사용합니다.
     
     기본적인 요청 요소들이나 지역 접속자정보 등을 <head> tag 안에 <meta> tag를 사용해서 나타내며 og:type 으로 페이스북의 객체들을 tag로 표현할 수 있습니다. 
    반응형
    반응형
    Social Plugins
    Core Concepts > Social Plugins

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


    소셜 플러그인들은 사용자의 친구들이 좋아하는 것을 보여주고, 웹 상의 사이트들을 추천해주거나 공유합니다.


    Like Button

    좋아요 버튼은 사용자들이 당신의 사이트에서 그들의 페이스북 프로필로 가기 위해 클릭할 수 있는 페이지들을 공유하게 합니다. 
     


    Send Button

    보내기 버튼은 사용자들이 당신의 컨텐츠를 사용자들의 친구들에게 쉽게 보낼 수 있도록 허용합니다.



    Comments

    언급 플러그인은 사용자들이 여러분 웹사이트의 내용중 일부에 대해 언급할 수 있게 합니다.



    Activity Feed

    활동 피드 플러그인은 사용자의 친구들이 당신의 웹사이트를 통해서 좋아하거나 언급하는 것을 사용자들에게 보여줍니다.


    Recommendations

    추천 플러그인은 사용자들이 좋아하는 여러분 사이트의 페이지들에 대해 개인적으로 제안할 수 있게 해줍니다.


    Like Box

    좋아요 박스는 당신의 페이스북 페이지를 좋아하는 사용자들이 이용할 수 있고 여러분의 웹사이트로부터 직접적으로 게재된글(stream)을 보여줍니다. 


    Login Button

    로그인 버튼은 이미 로그인 버튼 이외에 추가적으로 귀하의 사이트에 등록된 사용자의 친구들의 프로필 사진들을 보여줍니다.



    Registration

    등록 플러그인은 사용자들이 페이스북계정으로 귀하의 웹사이트에 쉽게 등록할 수 있게 도와줍니다.



    Facepile

    facepile 플러그인은 당신의 페이지를 좋아하거나 귀하의 사이트에 등록된 사용자의 페이스북 프로필 사진을 보여줍니다.


    Live Stream

    Live Stream 플러그인은 사용자들이 생생한 활동을 하는 것처럼 실시간으로 사용자들의 활동과 언급을 공유하는 것을 허용합니다.

    반응형
    반응형
    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)검색이나 검색결과페이지 상에 보여집니다. 이 페이지로부터, 사용자들은 애플리케이션이나 좋아하는 페이지로 찾아갈 수 있습니다. 당신은 또한 애플리케이션에 관한 뉴스를 담고 있는 프로필 페이지를 좋아하는 사용자들에게 갱신하기위해서 선택할 수 있습니다.

    반응형
    반응형
    Social Design
    Core Concepts > Social Design


    원문 : http://developers.facebook.com/socialdesign/


    소셜디자인은 소셜경험을 핵심으로 보는 상품디자인과 관련된 생각의 한 방법입니다. 페이스북 플랫폼에서 이용가능한 몇가지 특징들로 소셜경험들을 만듭니다. 

    Three Elements of Social Design

    소셜디자인은 어떻게 우리가 우리 스스로를 또는 서로에 대해 이해하는지와 3가지의 핵심요소들로 나눌 수 있는지를 정의합니다. : Identity(정체성), Conversation(대화), Commnunity(공동체 - 모임이 더 어울릴 거 같기도 함..;;)

    * Community(공동체) : 커뮤너티는 우리가 알고 믿고 우리가 결정을 내리는데 도움을 주는 사람들을 말합니다.
     * Conversation(대화) : 대화는 우리의 커뮤너티들과의 다양한 상호작용을 하는 것을 말합니다.
    * Identity(정체성) : 정제성은 우리 스스로 가지고 있는 정신 그리고 어떻게 우리가 우리의 커뮤너티를 바라보지는지를 말합니다.

    페이스북을 만들고 협력업체들을 도와주는 소셜디자인에 대해 생각하는 우리의 경험으로부터, 우리는 우리가 소셜디자인과 우리가 관찰한 최고의 실행들에 대해서 어떻게 생각하는지 설명하기 위해 이문서에 함께 적어 넣게 되었습니다.

    Modeling a Social Experience

    소셜상품을 설계하기 위한 한 가지 방법은 안에서 밖으로 나가는 것으로부터 일(작업)하는 것입니다. : 사람들이 정체성을 만드는 것을 허용하는지, 그들 스스로 그것(정체성)을 공유하고, 커뮤너티를 긴시간동안 이끌 수 있는지에 대해서 입니다. 페이스북은 이렇게 시작했습니다. 그러나 만약 커뮤너티가 페이스북 플랫폼을 통해서 이미 관리되고 있었다면 , 당신은 대신에 바깥에서 안으로 작업할 수 있을 것입니다. : 이미 만들어진 존재하는 커뮤너티 사용자들을 이용해서, 새로운 대화를 정의하고 그들의 정체성을 더 나아갈 수 있게 만들기 위해 그들 스스로 지속가능하게 만듭니다. 페이스북 플랫폼은 "밖에서 안으로"의 접근을 쉽게 만들어 줍니다.

     귀하의 앱이나 웹사이트(음악, 서적, 영화 등)에 대한 핵심적인 분야와 관심사를 정의함으로써 시작합니다. 그리고나서 아래에 있는 핵심적인 가이드라인의 집합을 따르고 페이스북 플랫폼이 위대한 소셜 경험을 만드는 귀하를 돕기 위해 제공하는 도구들을 활용하십시요.

    1. Utilizing Commnunity
    페이스북의 인물소개 정보는 여러분의 앱에서 친밀함, 관련성 그리고 기본적인 믿음을 느낄 수 있게 하기 위해 사용자 경험을 개인화함으로써 사용되어질 수 있습니다.

    2. Building Conversations
    도구들과 경험들을 만드는 것은 사람들에게 연결과 공유하기 위한 힘을 주는 것이며 사람들로 하여금 상대방으로부터 효율적으로 듣고 배울 수 있도록 허용한다.

    3. Curating Identity  
    사람들은 서로 공유하고 상호작용을 하는데 그것은 자기표현이 행복함과 가치있는 것이기 때문입니다. 그들을 돕기 위해 그들 스스로에 대해서 좀 더 배우고 그들의 정체성을 관리해 주십시요.
     
    반응형
    반응형

    Apps on Facebook.com


    Getting Started > Apps on Facebook.com 


    원문 : http://developers.facebook.com/docs/guides/canvas/ 


     페이스북에서 앱을 만드는 것은 여러분에게 핵심적인 페이스북 경험을 깊게 통합할 수 있는 기회를 주는 것입니다. 여러분의 앱은 뉴스피드와 알림을 포함하는 페이스북의 많은 요소들과 통합할 수 있습니다. 모든 핵심적인 페이스북 플랫폼 기술들 Social Plugins, Graph API와 Platform Dialogs 와 같은 것들이 페이스북 상의 앱들을 위해 이용가능합니다.

    이문서에서는 아래의 개념들에 대해 설명합니다.

    Canvas Page : 여러분의 앱이 로드될 페이지 입니다.
    Social Channels : 여러분의 사용자 환경을 성장시키고 사용하는 사람들 사이의 관계를 만드는데 도움을 주는 핵심 통로들 입니다.
    Analytics : 여러분의 앱을 위한 분석적 접근 입니다.

     만약에 당신이 지금 당장 페이스북에 앱을 만들기 원한다면 우리의 gettting started tutorial을 보십시요. 당신이 페이스북 페이지탭에 새로운 앱을 만들어 붙이기를 원한다면 Page Tabs을 보십시요.

    Canvas Page(캔버스 페이지)
     
     페이스북의 앱들은 Canvas Page 로 알고 있는 페이스북의 영역에 로드되는 웹앱들 입니다. 사용자는  php, python, java, c# 과 같은 웹 프로그래밍을 지원하는 어떤 언어나 도구를 사용함으로써 각자의 앱을 만들 수 있습니다.



    Canvas for your app(앱을 위한 캔버스)

     페이스북의 앱들은 캔버스 페이지에 로드됩니다. 한 캔버스 페이지는 정확히 문자그대로 페이스북 안에 있는 당신의 앱을 실행하는 공백인 캔버스 입니다. 당신은 당신의 앱을 구성하는 HTML, JavaScript와CSS 를 포함하는 캔버스URL을 제공함으로써 캔버스페이지를 덧붙일 수 있을 것입니다. 사용자가 캔버스 페이지를 요청했을 때 페이지 상의 iframe 안의 캔버스URL 을 로드할 것입니다. 당신의 앱에 이 결과들이 보여지게 될 것입니다.


    만약 페이스북에 앱을 바로 만들기 원한다면 getting started tutorial을 읽으세요.


    Bookmarks for quick re-engagement(빠른 재참여를 위한 북마크)

     사용자가 당신의 앱을 시작했을 때 북마크를 생성함으로써 사용자들이 페이스북 안에서 당신의 앱으로 쉽게 찾아갈 수 있도록 합니다. 북마크들은 상단우측 캔버스 상에서 뿐만 아니라 페이스북 홈페이지 상에서도 이용할 수 있습니다.
     

    이 북마크들은 얼마나 자주 그리고 최근에 사용자가 당신의 앱을 사용했는지를 기반으로 순서가 정해집니다. 북마크 상의 빨간 카운터들은 앱에 대한 요청들과 관련된 뛰어난 Request2.0의 사용자들게에 공지하고 그들에게 응답할 수 있도록 장려합니다.

    Real-time social app activity(실시간 소셜 앱 활동)
     

     플랫폼 앱들과의 거대한 참여를 이끌기 위해서 캔버스의 우측 상단에 사용자의 친구들로부터의 앱-스팩 갱신들의 활성화 티커를 나타냅니다. 
    사용자가 앱에 처음 들어갔을 때 앱과 가장 관련된 이야기들을 보여줍니다. 이 이야기들은 사용자와 친구들의 가장최근에 사용한 앱이나 게임들의 상호작용에 관한 것입니다.
    사용자가 앱을 지속적으로 사용한다면, 페이스북은 현재 사용하는 유저 설치하지 않은 유저 모두를 포함해서 앱을 사용하는 친구들로부터 무엇이 갱신되었는지 표현함으로써 관계를 넓혀줍니다.
    앱티커의 내용은 사용자가 사용하는 앱의 전후사정에 대해서 명확합니다. 그래서 사용자가 게임을 할 때,  사용자가 보게 될 메시지들은 사용자의 친구들이 다른 게임에서 하고 있는 것들에 대해 명확할 것입니다.


    Discovery stories(이야기들 발견)


     사용자들이 새로운 앱들과 게임들을 찬아내는데 도움을 주기위해서, 친구들이 앱이나 게임을 지속적으로 사용할 때  페이스북은 기본적으로 'playing'과'using' 이야기들을 기본적으로 생성합니다. 이 이야기들은 실시간으로 캔버스에 티커로 보여집니다. 사용자는 친구들로부터 마지막 15분 안에 ping을 받게 되면 playing 상태로 표시되어진다. 페이스북은 5초, 5분, 매10분 순으로 ping을 날립니다. 페이스북은 사용자가 앱을 사용한지 15분이 지나면 'used'에서 'played' 로 글자를 바꿉니다. 


    데이트, 체중관리나 임신과 같은 개인적 행위보다 더 관련있는 앱개발자들은 이 이야기들을 캔버스 색션 아래의 'On Facebook' 탭 안의 개발자앱의 social discovery 필드를 비활성화 함으로써 끌 수 있습니다.



    Game stories(게임 이야기들)

     'Games'와  같은 카테고리의 앱의 개발자들은 달성내용과 점수들에 대해 Graph API를 사용함으로써 티커를 통해 추가적인 이야기들을 내놓을 수 있습니다. 'Games'카테고리의 앱을 사용했을 때 이야기들은 오직 그 사용자들에게만 보여집니다.


     달성API는 개발자의 앱에 개발자가 설정한 목표집합을 달성하고있는 사용자나 그의 친구들에 대한 이야기들을 보여주는 것을 허용한다. 점수API는 개발자에게 앱에서 사용자가 새로운 고득점을 얻었을 때 최고득점이야기로서 사용자와 그 친구들이 각자의 점수들에 대해 전달하는 것을 허용합니다. 개발자가 사용자의 점수와 달성목표들을 게재하려면 사용자는 개발자의 앱에서 publish_actions 권한을 얻어야만 합니다.





    User Control(사용자 제어)


     사용자는 Application Settings 페이지에서 각각의 앱들이 그들의 이익에 대해 공유할 수 있는 최대 참가자 수를 제어할 수 있습니다. 그래서 만약에 사용자들은 사람들이 그들이 하고 있는 게임을 보길 원하는 사람이 있다면 또는 그렇지 않더라도 그들은 그것을 제어할 수 있어야 합니다.



     

     그들은 또한 개인적인 이야기들을 x-ing 함으로써(x표시를 사용함으로써) 티커로부터 실시간에서 제거하는 것을 제어할 수 있습니다. 



    Social Channels


     페이스북 상에서 앱들로의 트래픽을 좀 더 많이 이끌어내기 위해서 현재 사용하는 사용자들과 당신의 앱과의 관계를 다시 만들면서 새로운 사용자들이 당신의 앱을 발견할 수 있는 다양한 채널들을 사용할 수 있습니다. 각각의 채널은 사용자들과 각각의 사용자들의 최상의 정보들을 보여주는데 도움을 주는 알고리즘이 결합하는 것을 돕기 위해 고안되어졌습니다. 아래는 현재 체널들이 포함하는 것들입니다.

    Bookmarks
     

     북마크는 페이스북에서 사용자들이 당신의 앱을 쉽게 찾아가는 것을 가능하게 해줍니다. 북마크들은 사용자가 당신의 앱과 맺어진 후에 자동으로 추가되어집니다. 북마크들은 캔버스 페이지의 우측상단과 같이 홈페이지의 좌측 칼럼 위에 나타날 것입니다. 사용자들은 탑에 앱들을 고정시키는 'favorite'(즐겨찾기)으로 북마크를 추가할 수 있습니다. 북마크들은 또한 앱사용자들을 위해 처리되지않은 요청들의 수를 표시하는 카운터를 보여줍니다. 앱 북마크 옆에 more link(더보기)는 사용자가 인증받은 앱의 전체목록만큼 아직처리되지 않은 앱 요청들을 앱대쉬보드로 사용자에게 제공합니다. 



    Notifications(알림)

     페이스북에서 알림들은 중요한 것을 제공하는 것 뿐만 아니라 사용자들과 관련된 내용에 대해 흥미로운 변화들과 같은 가벼운 것들을 의미합니다. 앱으로부터의 요청들은 관련된 것을 찾으려는 사용자들에게 자동으로 통보될 것입니다. 

    요청들은 사용자들이 앱으로 그들의 친구들을 초대하는 것을 가능하게 해주는 좋은 방법이다. 당신은 또한 사용자가 선물을 받거나 퀘스트를 완료하는데 도움을 주는 것과 같은 앱에서의 명확한 행동을 수행하면서 그들의 친구들에게 통보를 하는 요청들을 사용할 수 있습니다.

     아래는 앱으로부터 전달되어질 수 있는 두가지 형태의 요청들이 있습니다.
    * 사용자가 생성한 요청들 : 이 요청들은 요청대화창을 통해 사용자의 명확한 행동에 의해서 확인되어집니다. 이 요청들은 수락할 사람의 북마크 수만큼 갱신합니다. 
    * 앱이 생성한 요청들 : 이 요청들은 초기화되어질수도 있고 앱에 권한이 있는 사용자들에게 보내질 수도 있습니다. 당신은 앱으로 재방문하는 사용자들을 부추기기 위해 북마크 숫자를 갱신하는 요청들을 사용할 수 있습니다.
    (예를 들어, 당신의 친구가 게임에서 그녀의 움직임을 끝냈고 이제 너의 차례다.).

    getting started tutorial을 통해 사용자들이 앱으로부터의 요청을 보낼 수 있는지에 대해서 더 알 수 있을 것입니다.



    New Feed stories

    뉴스피드는 사용자가 페이스북에 로그인 하자마자 보여지며, 페이스북 경험의 핵심입니다. 


    Discovery stories

     티커에서 discovery stories 와 유사하게 페이스북은 또한 사용자가 새앱을 사용하거나 새게임을 처음 설치했을 때 친구들과 이야기들을 공유합니다. 이 설치 discovery stories는 친구의 뉴스피드에 보여지고 그들의 친구들이 사용하는 유사한 앱을 사용자들이 발견할 수 있도록 합니다. 티커 discovery stories와 비슷하게 이 이야기들을 캔버스 색션 아래의 'On Facebook' 탭의 developer app의 social discovery 필드를 비활성화 함으로써 끌 수 있습니다.


    Publishing stories
     

     추가적으로 당신은 Feed Dialog를 사용하여 스트림으로 내용들을 게재할 수 있습니다. 당신은 사용자들이 앱에서 무언가를 하는 것에 대한 이야기들을 게재할 수 있도록 할 수 있습니다. 만약에 한 사용자가 게재하는 것을 선택한다면 이야기는 해당 사용자의 프로필에 나타나게 하기도 하고 사용자 친구의 뉴스피드에 나타나게 할 수도 있을 것입니다. 앱으로부터 게재된 이야기들은 앱에 대한 링크를 포함할 것이고 다양한 내용들을 선택적으로 포함할 것이다. getting started tutorial을 통해 어떻게 사용자들이 이야기를 게재하는지 좀 더 배울 수 있을 것입니다.


    Search
     

     새앱들은 그들만의 새로운 프로필 페이지들을 가지고 있습니다.(예를들면, Facebook Live's page를 보세요.) 이 페이지는 다른 페이지들 그리고 페이스북의 사용자 프로필들과 유사하며, 다른 구성가능한 탭들처럼 Wall 과 Info 탭을 포함하고 있습니다. 사용자들이 앱을 검색할 때, 이 페이지는 검색머릿말이나 검색결과페이지에서 보여집니다. 이페이지로부터 사용자들은 당신의 앱이나 좋아하는 앱프로필페이지를 탐색할 수 있습니다. 또한 앱의 프로필 페이지를 좋아하는 정보를 가진 사람들에 대해 갱신할 수 있는 것을 선택할 수 있습니다. 
     
     앱이 10개월의 활성화 사용자를 가지게 되었을 때, 앱은 자동적으로 페이스북이 다음번 검색인덱스를 재조정할 때 포함되어지는 큐에 들어가게 됩니다.(페이스북은 매2-4주 마다 재조정 합니다.) 인덱스가 당신의 앱을 재조정한 후에 앱은 검색을 통해 눈에 보이게 될 것입니다.



    Analytics
     

     당신의 앱을 위해서 어떻게 사용자들이 최상으로 할 수 있는 경험을 만드는 당신의 앱과 상호작용을 하는지 추적하는 Insights를 사용하십시요. 앱 관리자들을 위해서 Insights는 연속적인 이야기들을 위한 피드백, 당신의 앱으로 트래픽을 보내기도 하고 어떤 사용자 행동이 활성화 사용자 집계에 기여하는지와 권한있는 사용자와 활성화된 사용자의 통계, 얼마나 많은 권한들이 촉발되고 부여되었는지를 포함합니다.

     게다가, Insights는 앱을 위한 통계를 제공하기 위해 당신은 할당 및 조절정보에 접근할 수 있을 뿐만 아니라 API 오류들을 추적할 수 있습니다.

     당신은 당신의 앱에 대한 Insights에 Insights 대쉬보드를 통하거나 Developer app 에서 당신의 앱을 선택하거나 "insights" 링크를 클릭함으로써 바로 접근할 수 있습니다. 



    개발자들은 아래의 ref_params를 통해 티커 이야기들로부터 referral traffic을 추적할 수 있습니다.

    * Param / Description
    fb_source /  source of the referral for example cancas_ticker
    fb_action_type / type of action for example game.plays.
    fb_ticker_mode / ticker module, for example now_playing, leaderboard_passing, now_using, achievement_landing
    반응형

    + Recent posts