2012-01-03 4 views
4

私はFacebookの楽しいページに自動的に(記事)投稿するための簡単なJavaプログラムを開発しています。私はアプリを作成し、URL:https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID&client_secret=CLIENR_SECRETを使用してaccess_tokenを取得しました。私は楽しいページのウォールに投稿するこのJavaコードを使用します。ユーザーがこの操作を実行するアプリケーションを承認していません

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(); 

私はこのエラーを得た:

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

は、どのように私は私の楽しいページに投稿する私のアプリの許可を与えることができますか?

+0

article.http://stackoverflow.com/questions/4474367/upload-photo-to-facebook-with-httpclientではなく、Facebookに写真を投稿するのと同様の議論です。 – kosa

答えて

15

うわー、私は少なくとも1日1回尋ねたこれと同じ質問を参照の推奨に従って事前

で 感謝。

manage_pagespublish_streamをお尋ねします。ページの管理者が認証されたら、me/accountsを照会し、そのリストからページのアクセストークンを取得します。そのページのアクセストークンを使用して、me/feedに投稿できます。

+0

admin認証アプリケーションの後に私はaccess_tokenを取得しましたが、メッセージは「ページ」ではなく「管理者」として投稿されます。これは、自分のページが好きな人に更新情報を表示するために重要です。ありがとう。 –

+0

うん、ちょうどその反対があなたが探しているものだと言う "*しかし、まだ問題がある:送信された投稿は"管理者として "ではなく"ページとして "*"だからそれは?それをページへのページとして、またはページへの管理者として投稿しますか? – DMCS

+0

問題が解決しました。私は管理者ではなくページとしてページに投稿することができました。私は上記の説明を書きます。どうも。 –

0

ユーザーを使用していますが、ユーザーまたはページにはaccess_tokenを使用する必要があります。

  • ユーザーズaccess_tokensigned_request内に存在する(クッキーに、またはアプリケーションのキャンバスに渡される)です。
  • Page access_tokenaccounts接続userのユーザーは、manage_pagesの許可をアプリに許可しました。

更新:
ユーザーのaccess_tokenはをする必要があります管理者として投稿します。ページaccess_token

+0

URLを使用してページ管理者用のaccess_tokenを取得しました:http://www.facebook.com/dialog/oauth/?scope=manage_pages,publish_stream,offline_access&client_id=APP_ID&redirect_uri=http%3A%2F%2Fwww。cercleimmobilier.ma&response_type = tokenの場合、投稿はページの壁に移動します。しかし、まだ問題があります:送信された投稿は「管理者として」「ページとして」ではないので、自分の楽しいページが好きな人には表示されないので、「すべての人(最近)」に表示されます –

+0

は「ページアクセストークン」をfacebookのdocページ(http://developers.facebook.com/docs/reference/api/page/)で、ユーザー(管理者)のアクセストークンではなく、感謝するジューシースクリプター –

+1

@MokhlisseBadre、[ように]ようこそ。 [回答を受け入れる]を忘れないでください(http://meta.stackexchange.com/a/65088/168587); –

2

シンプルをする必要がありますページとして投稿する
、uはちょうどpermissions..that年代にそれを依頼する必要があります。..

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

私の場合でも、このコードを配置する場所は変わりません。そのユーザーが既にこれを許可しているかどうかを知る方法。 –

+0

@KrishnakantDalal私は "このコードを配置する場所"を取得しませんでした。そして、FacebookのUIは、Facebookを使って最初にログインしようとしたときに、そのユーザに許可を求めます。そしてそれは一度だけ尋ねる。 – W00di

0

Facebookはpublish_actionspublish_stream権限を変更しました。したがって、publish_actionsmanage_pagesの両方のアクセス許可を適用する必要があります。

関連する問題