2012-01-03 14 views
4

내 페이스 북의 재미있는 페이지에 자동으로 기사를 게시하는 간단한 Java 프로그램을 개발 중입니다. 앱을 만들었고 URL을 사용하여 access_token을 얻었습니다 : https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID&client_secret=CLIENR_SECRET. 나는 재미 페이지 벽에 게시하려면이 자바 코드를 사용사용자가이 작업을 수행하도록 응용 프로그램을 승인하지 않았습니다.

{ 
"error": { 
     "message": "(#200) The user hasn't authorized the application to perform this action", 
     "type": "OAuthException" 
    } 
} 

가 어떻게 내 재미 페이지에 게시하는 내 응용 프로그램의 인증을 제공 할 수 있습니다 :

String url = "https://graph.facebook.com/" + PAGE_ID + "/feed" 
List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 
nvps.add(new BasicNameValuePair("access_token", accessToken)); 
nvps.add(new BasicNameValuePair("message", item.getTitle())); 
HttpClient client = new DefaultHttpClient(params); 
HttpPost httpost = new HttpPost(url); 
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 
HttpResponse response = client.execute(httpost); 
HttpEntity entity = response.getEntity(); 

나는이 오류가있어?

+0

다음은 article.http : //stackoverflow.com/questions/4474367/upload-photo-to-facebook-with-httpclient 대신 facebook에 사진을 게시하는 것과 비슷한 토론입니다. – kosa

답변

15

와우, 나는 적어도 하루에 한 번 요청이 동일한 질문을 볼 수의 추천 다음 사전

에서 감사합니다.

manage_pagespublish_stream을 요청해야합니다. 페이지 관리자가 인증되면 me/accounts을 쿼리하고 해당 목록에서 페이지의 액세스 토큰을 가져옵니다. 해당 페이지의 액세스 토큰을 사용하면 me/feed에 게시 할 수 있습니다.

+0

admin 인증 애플리케이션 후에 access_token을 받았지만 메시지가 "as page"가 아닌 "admin"으로 게시되면 내 페이지를 좋아하는 사람들에게 업데이트를 표시하는 것이 중요합니다. 감사. –

+0

흠, 당신이 말하는 바로 그 반대가 당신이 찾고있는 것입니다. "* 그러나 여전히 문제가 있습니다 : 보내진 게시물은"관리자 ""페이지 "가 아닌"* "그래서" 페이지에 페이지로 게시하거나 페이지의 관리자로 게시 하시겠습니까? – DMCS

+0

문제가 해결되었습니다. 페이지가 아닌 관리 페이지로 게시 할 수있었습니다. 나는 위의 설명을 적어 둔다. 고마워. –

0

사용자 또는 페이지에 access_token을 사용해야하는 반면 응용 프로그램을 사용하고 있습니다.

  • 사용자 access_tokensigned_request 내에 존재하는 (쿠키, 또는 응용 프로그램 캔버스에 전달)입니다.
  • Page access_tokenaccounts 연결 user 사용자가 manage_pages 사용자의 권한을 앱에 부여하면 사용할 수 있습니다.

업데이트 :
관리자로 게시하려면 사용자의 access_token이 필요합니다.

String[] permissions = { "offline_access", "publish_stream", "user_photos", "publish_checkins","photo_upload" }; 
mFacebook.authorize(MainActivity.this, permissions, 
      new LoginDialogListener()); 
+0

URL : http://www.facebook.com/dialog/oauth/?scope=manage_pages,publish_stream,offline_access&client_id=APP_ID&redirect_uri=http%3A%2F%2Fwww를 사용하여 페이지 관리자에게 사용자 access_token이 있습니다.cercleimmobilier.ma & response_type = token, 그러면 게시물은 페이지 벽으로 이동합니다. 하지만 여전히 문제가 있습니다. 보낸 사람이 "관리자 권한으로"페이지가 아니므로 내 재미 페이지를 좋아하는 사람들에게 표시되지 않습니다. "모든 사람 (최근)"에 나타납니다. –

+0

은 "페이지 액세스 토큰"을 다음과 같이 사용해야합니다. 사용자 (관리자) 액세스 토큰 대신 facebook 문서 페이지 http://developers.facebook.com/docs/reference/api/page/에 descr ibe. 감사합니다 Juicy Scripter –

+1

@MokhlisseBadre, [so]에 오신 것을 환영합니다. [대답 수락] (http://meta.stackexchange.com/a/65088/168587))을 잊지 마세요 –

2

간단한 필요합니다 페이지로 게시합니다. 따라서 publish_actionsmanage_pages 권한을 모두 적용해야합니다.

+0

내 경우에도 작동하지만이 코드를 배치 할 위치입니다. 그 사용자가 이미 이것을 허용했는지 알 수있는 방법. –

+0

@KrishnakantDalal "이 코드를 넣을 위치"를 얻지 못했습니다. 페이스 북 UI는 페이스 북을 사용하여 로그인을 시도 할 때 사용자에게 권한을 요청합니다. 그리고 그것은 한 번만 묻습니다. – W00di

0

페이스 북이 publish_actionspublish_stream 권한을 변경 .. 유는 permissions..that 년대에게이를 요청해야, 당신은 페이지를 access_token

관련 문제