태그 보관물: facebook

facebook

Facebook : 사용자가 관리자 인 페이지 목록 가져 오기 사용자가 있으며 사용자가 관리자

그래프 API를 사용하고 있습니다.

로그인 한 사용자가 있으며 사용자가 관리자 인 모든 페이지의 페이지 ID 목록을 가져오고 싶습니다.

이렇게하는 방법이 있습니까? 문서는 꽤 나쁘고 순환 적입니다.



답변

Graph API로 간단합니다. 단계 :

  1. manage_pages사용자로부터 권한을 얻습니다 (확장 권한).
  2. Graph API 호출-https: //graph.facebook.com/me/accounts

그래프 탐색기 에서이 절차 테스트 할 수 있습니다 .-> ‘Get Access Token’ 버튼을 클릭-> ‘Extended permission’에서 ‘manage_pages’를 확인하고 제출합니다. admin-page-details JSON을 제공합니다.


답변

일부 FQL로 해결했습니다.

FB.api({method: 'fql.multiquery',
        access_token: <access_token>,
        queries: {
            query1: 'select page_id from page_admin where uid = ' + <uid>,
            query2: 'select page_id, name, page_url from page where page_id in (select page_id from #query1)'
        }
       }, function(queries){
           var pages = queries[1].fql_result_set;
       }}


답변

FB.api(/me/accounts)FQL을 사용하지 않으려면 전화 할 수 있습니다 .

‘계정’은 사용자 개체의 연결입니다. 이 @ http://developers.facebook.com/docs/reference/api/user에 대한 문서를 참조하십시오.

물론 Facebook에는 항상 문제가 있습니다. 현재이 메서드는 사용자가 관리자 인 페이지뿐만 아니라 설치 한 응용 프로그램도 반환합니다. 나는 이것이 의도 한 행동이 아니라는 것을 거의 확신합니다. 나는 이것을 몇 달 전에 사용했고 페이지 목록 만 얻은 것을 기억하는 것 같습니다. 설명서에는이 목록의 응용 프로그램에 대한 언급도 없습니다.

하지만 이것은 해결하기 쉬운 문제입니다. Facebook은 목록의 각 항목에 대해 이름, 범주 및 ID를 반환하고 각 응용 프로그램에는 ‘응용 프로그램’범주가 있습니다. 나는 단순히 카테고리가 ‘Application’이 아닌 항목 만 나열하도록하는 것입니다.


답변

이 주소로 이동

https: //developers.facebook.com/tools/explorer/431294226918345/? method= GET& path= me% 2Faccounts% 3Ftype%3Dpage`

액세스 토큰 얻기를 클릭 하고 확장 권한으로 이동 하십시오.

체크 manage_pages의 체크 박스를

클릭 액세스 토큰을 가져 오기

그런 다음 FQL에서 이것을 작성하십시오.

me / accounts? type = page

제출을 클릭합니다. 사용자 admin에 로그인 한 모든 페이지 목록이 표시됩니다.


답변

로그인시 JavaScript SDK로 권한을 요청합니다.

FB.login(function(){}, {perms:'manage_pages'});

그런 다음 로그인하면 다음과 같이 페이지 (및 앱)를 검색 할 수 있습니다.

FB.api('/me/accounts', function(response){
    console.log(response);
})


답변

사용자가 관리하는 facebook 페이지 목록 만 원하는 경우 “pages_show_list”권한을 사용할 수도 있습니다.

“manage_pages”권한은 자신의 페이지를 관리 할 수있는 권한을 사용자에게 요청합니다. 이는 필요한 항목에 따라 너무 방해가 될 수 있습니다.


답변

솔루션은 Pages 및 Applications를 반환합니다 . 페이지를 엄격히 원하면 다음과 같이 “Type not equals”절과 함께 FQL Multiquery를 사용할 수 있습니다.

{
"query1":"select page_id from page_admin where uid = me()",
"query2":"select page_id, name, page_url, type from page where type!='APPLICATION' AND page_id in (select page_id from #query1)"
}