昨日、アプリケーションの設定を変更し、「新しいデータ権限」と「新しい SDK」を有効にしました。
その後、ユーザーのウォールにメッセージを投稿する機能が機能しなくなりました。私のウェブサイトでは、ユーザーは facebook API (Graph) を使用してログインし、ウォールにメッセージを投稿できます。
これは正常に動作していた私の古いコードです:
function publish_with_permission(パーミッション、アクションリンク、添付ファイル) { FB.ensureInit(関数() { FB.Connect.requireSession(関数(){ //この権限がユーザーにすでに付与されているかどうかを確認します FB.Facebook.apiClient.users_hasAppPermission(権限、 関数(結果) { // オフライン許可を促す もし (結果 == 0) { // Facebook の許可ダイアログを表示します FB.Connect.showPermissionDialog(権限、 関数(結果){ if (!結果) { FB.Connect.streamPublish('', attachment, action_links, null, "Post this:", jscallback); } そうしないと { // 許可が与えられ、Facebook ダイアログなしで投稿 FB.Connect.forceSessionRefresh(関数() { FB.Connect.streamPublish('', attachment, action_links, null, "これを投稿:", jscallback,true); }); } }、真、null); } そうしないと { // 許可済み、突然投稿 // Facebook ダイアログなし FB.Connect.streamPublish('', attachment, action_links, null, "これを投稿:", jscallback,true); } }); }); }); }
関数がハングするだけで、何も起こりません。このフォーラムで検索し、この投稿を見つけました
関数 fb_publish() { FB.ui( { メソッド: 'stream.publish', message: 'メッセージはこちら', 添付ファイル: { name: 'Nom ici.', キャプション: 'ここにキャプション。', 説明: ( 「ここに説明」 )、 href: 'URL はこちら' }、 アクションリンク: [ { text: 'コード', href: 'アクション URL はこちら' } ]、 user_prompt_message: 'ここに個人的なメッセージ' }、 関数 (応答) { if (応答 && response.post_id) { alert('投稿が公開されました'); } そうしないと { alert('投稿は公開されませんでした。'); } } ); }
これは機能しますが、2 つの問題があります。1) ユーザーがグラフ API を使用して初めてログインし、ウォールに公開するための拡張アクセス許可を付与した場合でも、このメソッドは毎回ユーザーに許可するかどうかを尋ねます。 1つはそれをしませんでした。2) この方法では、ユーザーがコメントを追加することもできます。これも必要ありません。
以前に許可を与えたので、再度明示的に許可を求めることなく、ウォールにシームレスに公開したいと考えています。
私はPHPを使用しています - ヒントをいただければ幸いです ありがとう