これが私がやろうとしていることです。Facebookアプリケーションを作成し、GraphAPIエクスプローラーを使用して右上のアプリケーションを指定することができました。
さらに詳細な情報として、C#を使用して社内アプリの機能をコーディングし、これを機能させています。
その後、URLセクションに移動し、次のアドレスを入力します。
https://graph.facebook.com/MyCompanyPage
次に、送信を押します。エクスプローラーで、そのページの情報をナビゲートして表示します。次に、アプリのaccess_tokenを取得するために、[アクセストークンの取得]->[拡張アクセス許可の指定]->[アクセストークンの取得]をもう一度押します。それはすべてうまくいっていて、Facebookアプリを使ってFacebookに投稿することができます。
問題は、access_tokenの有効期限が切れており、手動の取得方法を使用してアクセストークンを取得していることです。
これが、GITの例の1つを使用して試したことです。
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.
}
これで、アプリのアクセストークンを自分で取得しようとしたときに機能します。ただし、GraphAPIExplorerの場合と同じように動作する動作が必要です。Explorerのように機能する必要があるのは、実際の会社ページでFacebookアプリケーションを使用して投稿したかったため、会社ページは実際にはユーザーではなくFacebook投稿を作成しているようです。上で述べたように、Graph API Explorerを使用してこれを正常に実行できますが、C#では正常に実行できません。