Description

회사에서 업무로서 Social Media(Youtube, Instagram, Facebook, Twitter)의 API를 이용해 글 작성, 영상 업로드, 이미지 업로드, 예약 기능, 통계 등과 같은 기능을 파악해야 했다.

본 포스팅에서는 첫 게시글로 페이스북의 피드를 게시하는 부분을 작성했다.

Progress

먼저 포스팅의 기준은 페이지에 작성하는 것으로 설명한다.

페이지에 포스팅하려면 기본적으로 필요한 준비물이 있다.

  1. 사용자 ID
  2. 페이지 ID
  3. 페이지 엑세스 토큰

페이지에 포스팅할 때는 사용자의 엑세스 토큰이 아닌 페이지 엑세스 토큰이 필요하다.

사용자 ID 가져오기

request

/*
    access_token: 사용자 엑세스 토큰
*/

https://graph.facebook.com/me?access_token={user-access-token}

response

{
    "name": "User Name", // 사용자 이름
    "id": "123456789012345" // 사용자 ID
}

페이지 ID 및 페이지 엑세스 토큰 가져오기

URL에 입력한 사용자 ID와 일치하는 사용자가 소유한 페이지들의 리스트가 data에 있다.

data 하위의 각 객체에는 개별 페이지의 정보가 있고 id값은 page id가 되고 access_token은 사용자의 엑세스 토큰이 아닌 페이지 엑세스 토큰이 된다.

API를 이용해서 포스팅 할 페이지의 id와 access token을 미리 저장해둔다.

request

/*
    access_token: 사용자 엑세스 토큰
*/

https://graph.facebook.com/{user-id}/accounts?access_token={user-access-token}

response

{
    "data": [
        {
            "access_token": "EAA...",
            "category": "집",
            "category_list": [
                {
                    "id": "197289820310880",
                    "name": "집"
                }
            ],
            "name": "Test",
            "id": "107507875112345",
            "tasks": [
                "ANALYZE",
                "ADVERTISE",
                "MESSAGING",
                "MODERATE",
                "CREATE_CONTENT",
                "MANAGE"
            ]
        }
    ],
    "paging": {
        "cursors": {
            "before": "MTA3NTA3ODc1MTQ1NDA5",
            "after": "MTA3NTA3ODc1MTQ1NDA5"
        }
    }
}

페이지 엑세스 토큰 가져오기

위의 방법은 페이지 아이디, 엑세스 토큰 외에도 여러 정보가 포함된 전체 정보를 가져온다.

하지만 개발을 하다보면 페이지 엑세스 토큰만을 받아오고 싶은 경우가 생긴다.

그런 경우엔 아래 API를 이용하면 된다.

request

/*
    page-id: 페이지 아이디
    access_token: 사용자 엑세스 토큰
*/

https://graph.facebook.com/{page-id}?fields=access_token&access_token=EAA...

response

{
    "access_token": "EAA...",
    "id": "107507875112345"
}

페이지에 피드 게시하기

request

/*
    page-id: 페이지 아이디
    message: 피드에 작성될 메세지
    access_token: 페이지 엑세스 토큰
    link: 피드에 생성될 링크 주소
*/

https://graph.facebook.com/{page-id}/feed?message=테스트&access_token={page-access-token}&link=https://www.youtube.com/watch?v=4poqZjNTZjI%26list=PLcKa-34z76PvI5KvI5S2JGj0RcBVuz3jg

요청 파라미터

요청할 때 사용 할 필드는 아래 링크에서 자세히 볼 수 있다.

기본적으로 피드를 게시하기 위해서는 message 또는 link가 꼭 필요하다.

그 외에 Optional한 필드들이 굉장히 많아서 선택해서 사용하면 된다.

ex) scheduled_publish_time: 예약 기능(Unix Timestamp만 허용) 등

Feed - Documentation - Facebook for Developers

response

{
    "id": "107507875145409_120119147217615"
}

Reference

페이지 API Getting Started

Get Started - Pages - Documentation - Facebook for Developers

페이지 컨텐트 가이드

Publish Content - Pages - Documentation - Facebook for Developers

가이드 리스트

Guides - Pages - Documentation - Facebook for Developers

복사했습니다!