[SNS] 페이스북 page tabapp signed request

page tabapp에서 signed request를 받으려면

페이지 탭 URL, 페이지 탭 URL (HTTPS 보안) 설정시 주의

마지막 슬래쉬 없이 디렉토리명으로 끝나면 받을 수 없다

원래 주소가 http://www.incree.com/tabapp/index.php 일 경우

웹서버 설정에 따라 http://www.incree.com/tabapp 와 같이 입력해도

접속은 되지만 signed request 는 받을 수 없다

받드지 전체 url을 입력하거나 http://www.incree.com/tabapp/와 같이 입력해야 된다

Posted by incree

2013/10/27 02:45 2013/10/27 02:45
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/287

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

1. 목록 가져오기
/page_id/promotable_posts?is_published=0

is_published 파라미터가 없는 경우는 예약된 이후에 publishing된 목록도 같이 가져온다

2. 현재 시간으로 posting 하기
FB.api('/' + post_id, 'POST', {is_published:true}, function(response) {
 console.log(response); // 성공하면 true
}

3. publishing time 수정
FB.api('/' + post_id, 'POST', {scheduled_publish_time:newTime}, function(response) {
 console.log(response); // 성공하면 true
}

4. 삭제하기
FB.api('/' + post_id, 'DELETE', function(response) {
 console.log(response); // 성공하면 true
}

Posted by incree

2013/10/18 16:13 2013/10/18 16:13
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/282

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[SNS] 페이스북 access tokens 관련 url

How-To: Handle expired access tokens
https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/


Removal of offline_access permission
https://developers.facebook.com/roadmap/offline-access-removal/


Facebook PHP-SDK have added simple way of extending access_token
https://github.com/facebook/facebook-php-sdk/commit/1270f0debaab3b93d683a9817c7adbc7e9e5cdc0


How to extend access token validity since offline_access deprecation
http://stackoverflow.com/questions/8982025/how-to-extend-access-token-validity-since-offline-access-deprecation

Posted by incree

2013/10/11 10:11 2013/10/11 10:11
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/277

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[SNS] 페이스북 tab app api 관련 url

Add Page Tab Dialog(페이지에 탭앱 추가하기)
https://developers.facebook.com/docs/reference/dialogs/add_to_page/

FB.ui({
  method: 'pagetab',
  redirect_uri: 'YOUR_URL'
}, function(response){});

https://www.facebook.com/dialog/pagetab?
  app_id=YOUR_APP_ID
  &redirect_uri=YOUR_URL
https://www.facebook.com/dialog/pagetab?app_id=449768265140751&redirect_uri=http://facebook.com


Realtime Updates

https://developers.facebook.com/docs/reference/api/realtime/
https://developers.facebook.com/docs/reference/api/realtime/#subscribingviagraphapi

https://developers.facebook.com/docs/reference/api/page/#realtime
사용자 삽입 이미지
변경가능 항목
name
category_list
picture
checkins
feed


Connections tabs
https://developers.facebook.com/docs/reference/api/page/#connections
https://developers.facebook.com/docs/reference/api/page/#tabs

Create

You can install a profile_tab at the end of the current list of installed tabs for a page by issuing an HTTP POST request to PAGE_ID/tabs with a Page Access Token:

Parameter Description Type Required
app_id ID of the application for which to install the tab. string Y

If the create is successful, you get the following return:

Description Type
If the create succeeded boolean

Update

You can update an installed profile_tab for a page by issuing an HTTP POST request to /PAGE_ID/tabs/TAB_ID with Page Access Token and the following parameters:

Parameter Description Type Required
position Order in which the tab will appear on the profile. Must be after permanent tabs and less than the number of installed tabs. Index starts at 0 integer N
custom_name Name to be used for the tab. If this is set to an empty string, the tab will use the application’s default tab name. string N
is_non_connection_landing_tab Set this tab as the default landing tab for users who have not liked and are not admins of the Page. If provided, value must be true. boolean N
custom_image_url URL for an image to be used as a custom icon for this Page app. Note that either custom_image_url or custom_image can be set, but not both. string N
custom_image The name of an image file to be used as a custom icon for this Page app. Note that either custom_image_url or custom_image can be set, but not both. image file N

If the edit is successful, you get the following return.

Description Type
If the edit succeeded boolean

Delete

You can delete an installed profile_tab where is_permanent is not true for a page by issuing an HTTP DELETE request to /PAGE_ID/tabs/TAB_ID object with a Page Access Token.

If the delete is successful, you get the following return.

Description Type
If the delete is successful boolean



tabapp: {
            create: function(pageId, tabappId, pageAccessToken, callback) {
                FB.api('/' + pageId + '/tabs', 'POST', {access_token: pageAccessToken, app_id: tabappId}, function(response) {
                    if(callback) callback.apply(this, [response]);
                });
            },
            update: function(pageId, tabappId, pageAccessToken, updateData, callback) {
                updateData.access_token = pageAccessToken;
                FB.api('/' + pageId + '/tabs/app_' + tabappId, 'POST', updateData, function(response) {
                    if(callback) callback.apply(this, [response]);
                });
            },
            delete: function(pageId, tabappId, pageAccessToken, callback) {
                FB.api('/' + pageId + '/tabs/app_' + tabappId, 'DELETE', {access_token: pageAccessToken}, function(response) {
                    if(callback) callback.apply(this, [response]);
                });
            }
        }

Posted by incree

2013/10/09 09:44 2013/10/09 09:44
, , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/276

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[SNS] 페이스북 FQL 페이징

Graph api는 paging 정보가 넘어오기 때문에

이 정보를 이용해서 처리하면 되는데

FQL은 어떻게 처리해야 될까?

1. limit만 사용
limit 20, 10 처럼 mysql과 동일한 형태로 사용을 할 수 있지만

결과는 원하는 대로 나오지 않는다

앞의 값이 뒤의 값보다 크면 무조건 결과가 반환되지 않는다.

심지어 Graph API Explorer의 FQL Query 테스트 해보는 것과 FB.api로 쿼리 날리는게

결과가 다르게 온다.(이건 버그일까??)

2. limit, offset 사용
limit 10 offset 20과 같이 사용하는데, 역시 1번과 마찬가진데 반대로

뒤의 값이 앞의 값보다 크면 무조건 결과가 반환되지 않는다.

3. limit, created_time 사용
테스트 해 본 결과 가장 정확하게 페이징이 가능한 방법이다
(더 좋은 방법이 있을수도 있지만, 현재까지 찾은건 이게 최고)

select .... from stream where source_id='page_id etc..' and created_time<이전마지막post의 created_time(timestmp) limit 20

created_time는 테이블마다 명칭이 다를수 있따(comment는 time)

다른 테이블은 1,2 방법이 정상적으로 될수도 있다

위 정보는 stream 테이블만 테스트 되었다.

Posted by incree

2013/09/14 14:44 2013/09/14 14:44
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/268

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

facebook api를 이용해서 page post를 가져오는 건

/page_id/feed 이다

FB.api('/' + pageId + '/feed', {limit:25, until:nextPageUntil}, function(response) {
            iwtObj.common.fn_debug(response);
}

하지만 이 경우 filter_key를 사용할 수 없어서

내가 작성한 feed와 다른 사람의 게시물을 구분할 수 없어서

루프를 돌면서 id 비교해서 나눠줘야 한다.(방법이 있는데 못 찾은것일수도 있음)

내 feed와 다른 사람 게시물을 구분해서 가져오려면 아래와 같은 fql을 사용하면 된다

1. SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key = 'others' AND source_id = page_id

2. SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id = page_id AND actor_id != page_id

보통 1번을 사용하면 되고,

2번은 되긴하지만 기본 feed limit내에서 다른 사람의 게시물을 가져오기 때문에

최근에 모두 내가 작성한 feed만 있다면 결과가 리턴되지 않는다.


내 게시물만 가져오려면 filter_key='owner'을 사용하면 된다.

fql에 limit 사용법은 mysql과 동일하다
limit는 mysql처럼 사용은 할 수 있지만 원하는 대로 나오지 않는다(2013.09.14 추가)
  - limit 25
  - limit 0, 25
  - limit 25, 25





Posted by incree

2013/09/14 14:35 2013/09/14 14:35
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/266

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[SNS] 페이스북 몇가지 기능의 FQL

1. 페이지의 최신 게시물(stream) 가져오기
select post_id from stream where source_id=page_id and created_time>=1379003538

2. 페이지의 최신 댓글 가져오기
select id from comment where post_id IN (select post_id from stream where source_id=page_id limit 999999) and time>=1379003538

3. stream like 검색
SELECT message FROM stream WHERE source_id=page_id
AND strpos(lower(message),lower('검색어')) >=0

Posted by incree

2013/09/14 02:26 2013/09/14 02:26
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/267

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

/*
 * page의 feed 목록 다음 페이지 가져오기
 * until은 response.paging.next에 graph api 정보가 있는데, 이걸 파싱해서 가져온다
 * limit는 기본 25개
 */
FB.api('/page_id/feed', {limit: 20, until: nextPageUntil}, function(response) {
    console.log(response);
});

Posted by incree

2013/08/20 04:49 2013/08/20 04:49
, , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/259

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

내 담벼락에 등록
FB.api('/me/photos', 'post', {
                                access_token: accessToken,
                                message:'메시지',
                                url:imgURL
                            }, function(response){
                                console.log(response);
                            });


포토 앨범에 등록
FB.api('/album_id/photos', 'post', {
                                access_token: accessToken,
                                message:'메시지',
                                url:imgURL
                            }, function(response){
                                console.log(response);
                            });




페이지에 등록(publish_stream, manage_pages 권한 필요)
FB.api('/page_id/photos', 'post', {
                                access_token: accessToken,
                                message:'메시지',
                                url:imgURL
                            }, function(response){
                                console.log(response);
                            });

Posted by incree

2013/08/08 06:51 2013/08/08 06:51
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/253

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

앱에서 page에 사진을 올릴때는 page access token이 필요하다

텍스트 feed만 등록할때는 user access token만 있어도 되지만

사진은 반드시 page access token이 필요

이 정보가 없이 업로드 하면

Subject does not have permission to post photos on this page

와 같은 에러가 리턴된다.

전체 에러
사용자 삽입 이미지




user access token 구하기
window.fbAsyncInit = function() {
..........
........
........
      function statusUpdate(response) {
            if(response.status === 'connected') {
                accessToken = response.authResponse.accessToken; // user access token
            }
      }
      FB.getLoginStatus(statusUpdate, true);
}


page access token 구하기 (페이지에 대한 권한도 넘어온다.response 콘솔에 찍어보기)
FB.api('/user_id/accounts', function(response) {
                    accessToken = response.data[0].access_token; // page access token
});
// user_id에 me를 넣으면 본인의 page access token

권한은 publish_stream,publish_actions,manage_pages 가 필요
publish_actions은 없어도 되는것 같은데 확인 안해봄


access token 관련 페이스북 도움말 페이지
https://developers.facebook.com/docs/facebook-login/access-tokens/


Posted by incree

2013/08/08 02:54 2013/08/08 02:54
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/252

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


Notices

Archives

Authors

  1. incree

Recent Trackbacks

Calendar

«   2017/08   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Site Stats

Total hits:
419290
Today:
94
Yesterday:
111