2012-04-13 3 views
0

그래서 여기에 내가하려는 일이 있습니다. 내 Facebook 응용 프로그램을 만들었고 Graph API 탐색기를 사용하여 오른쪽 상단에 응용 프로그램을 지정할 수있었습니다.회사 벽에 게시 할 앱에 대한 Facebook 액세스 토큰을 얻으려면 어떻게해야합니까?

좀 더 자세한 정보는이 기능을 사용하기 위해 사내 앱의 기능을 코딩하기 위해 C#을 사용하고 있습니다.

그 후 URL 섹션으로 이동하여 다음 주소를 입력하십시오.

https://graph.facebook.com/MyCompanyPage

그런 다음 제출했다. 탐색기에서 해당 페이지의 정보를 탐색하고 표시합니다. 그럼 내 애플 리케이션에 대한 내 access_token을 얻으려면 가서 액세스 토큰 가져 오기 -> 내 확장 권한 지정 -> 액세스 토큰 가져 오기를 다시 누르십시오. 모든 것이 잘되고 좋으며 Facebook 앱을 사용하여 Facebook에 성공적으로 게시 할 수 있습니다.

문제는 access_token이 만료되고 수동 검색 방법을 사용하여 액세스 토큰을 얻는 것입니다.

GIT의 예제 중 하나를 사용해 보았습니다.

FacebookClient client = new FacebookClient(); 
dynamic parameters = new ExpandoObject(); 
parameters.client_id = "MYAPPID"; // Or does this need to be my CompanyPage ID?? 
parameters.redirect_uri = "https://www.facebook.com/connect/login_success.html"; 
// The requested response: an access token (token), an authorization code (code), or both (code token). 
parameters.response_type = "token"; 
// list of additional display modes can be found at http://developers.facebook.com/docs/reference/dialogs/#display 
parameters.display = "popup"; 
// add the 'scope' parameter only if we have extendedPermissions. 
parameters.scope = "publish_stream,manage_pages,status_update"; 
// when the Form is loaded navigate to the login url. 
Uri LoginURL = client.GetLoginUrl(parameters); 

// whenever the browser navigates to a new url, try parsing the url. 
// the url may be the result of OAuth 2.0 authentication. 
FacebookOAuthResult oauthResult; 
if (client.TryParseOAuthCallbackUrl(LoginURL, out oauthResult)) { 
    // The url is the result of OAuth 2.0 authentication 
} else { 
    // The url is NOT the result of OAuth 2.0 authentication. 
} 

이제이 앱에 대한 액세스 토큰을 얻으려고 할 때이 기능이 작동합니다. 그러나 그래프 API 탐색기와 동일한 방식으로 작동하는 동작이 필요합니다. 익스플로러처럼 작동해야하는 이유는 실제 회사 페이지에서 Facebook 애플리케이션을 사용하여 게시물을 만들고 싶었 기 때문입니다. 따라서 회사 페이지는 실제로 Facebook 페이지가 아닌 사용자 페이지로 나타납니다. 위에서 말한 것처럼 Graph API Explorer를 통해 성공적으로이 작업을 수행 할 수 있지만 C#에서는 성공하지 못했습니다. 페이지 대신 그래프 API를 사용하기 위해

답변

2

, 당신은 페이지 액세스 토큰을 얻을 필요 - 자세한 내용은 여기를 참조하십시오 https://developers.facebook.com/docs/authentication/pages/

  1. 가 사용자를 인증하고 manage_pages에게 권한을 요청
  2. 사용자가 관리하는 페이지 목록 가져 오기
  3. 목록을 구문 분석하고 토큰을 가져 와서 피드에 게시하십시오.
+0

게시물을 읽은 후에 좋습니다. 나는 내 마음 속에서 내가 성취하고자하는 것이 본질적으로 불가능하다는 것을 깨달았습니다. 전 과정을 자동화 할 수 있어야합니다. 그러나 먼저 사용자를 인증하고 해당 액세스 토큰을 가져와야합니다. 로그인 페이지로 리디렉션하지 않으면 내가 할 수없는 일입니다. 따라서 사용자는 최소한 Facebook에 로그인 한 다음 사용자 대신 게시물을 작성할 수 있어야합니다. access_token에 대한 시간을 늘릴 수 있습니까? 이들은 단지 몇 시간 만 지속됩니다. – meanbunny

+1

: 토큰을 확장하고 질문과 대답을 참조하십시오. http://stackoverflow.com/questions/10082531/what-is-the-code-for-getting-a-refreshed-facebook-token-in-an- android-app/10148412 # 10148412 60 일 동안 유효한 새로운 토큰을 받게됩니다 – avs099

+0

당신은 최고입니다! 나는 먼저 앱의 access_token을 확장해야만했다. 그런 다음 페이지에 게시 할 액세스 토큰이 길어질 것이라고 가정 한 특별한 것을 얻을 수 있었다. 천천히 그러나 확실하게 배우기. – meanbunny

관련 문제