4

Facebookページに投稿しようとしていますが、ページに問題があります。

これを実行すると、次のようになります。

Facebook.FacebookOAuthException: (OAuthException - #200) (#200) ユーザーには、このページでこのアクションを実行するための十分な管理権限がありません

アプリケーション アクセス トークンではなく、ユーザー アクセス トークンが必要だと思います。オンラインの例では、「コード」をトークンに交換しています。現在、この「コード」を取得する方法がありません。

このプロセスは、このような単純なタスクに対して非常に複雑に思えます。ここで何か不足していますか?

ユーザー アクセス トークンは必要ですか? このコードが Windows サービスにあり、ユーザーにプロンプ​​トを表示できないと仮定して、このトークンを取得するにはどうすればよいですか。

const string applicationId = "114810611889734";
const string applicationSecret = "*** SECRET ***";
const string pageId = "102661313114041";

var client = new FacebookClient();

dynamic token = client.Get("oauth/access_token", new
{
    client_id = applicationId,
    client_secret = applicationSecret,
    grant_type = "client_credentials"
});

client.AccessToken = token.access_token;

dynamic parameters = new ExpandoObject();
parameters.title = "test title";
parameters.message = "test message";

var result = client.Post(pageId + "/feed", parameters);
4

1 に答える 1

5

ようやく Facebook ページに投稿できるようになりましたが、そのためにはユーザーが必要です。これらは私が取った手順です...

最初に、このページへの投稿に使用する新しい Facebook アカウントを作成する必要がありました。

次に、ページの管理者ロール セクションに移動し、このユーザーをマネージャーとして追加しました。

このユーザーのアクセス トークンを次の URL から取得しました。

https://www.facebook.com/dialog/oauth?client_id=APPLICATION_ID&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=code+token&display=popup&scope=manage_pages

リダイレクト後、URL には有効期限のない access_token が含まれている必要があります。(expires_in=0 は URL に含まれている必要があります。)

これを確認するために、https: //developers.facebook.com/tools/debug/access_token のアクセス トークン デバッガーにアクセスし、アクセス トークンを入力して [デバッグ] をクリックしました。

最後に、アプリケーション ID とアプリケーション シークレットの代わりにアクセス トークンを使用するようにコードを変更しました。

const string accessToken = "MY_ACCESS_TOKEN";
const string pageId = "MY_PAGE_ID";

var client = new FacebookClient(accessToken);

dynamic parameters = new ExpandoObject();
parameters.title = "test title";
parameters.message = "test message";

var result = client.Post(pageId + "/feed", parameters);

このアクセス トークンは、アプリの構成ファイルにハード コードされています。

于 2013-01-07T05:14:52.193 に答える