このページに表示されているコードを正確に実装しました:http: //developers.facebook.com/docs/reference/dialogs/feed/
問題:画像を除いて、オブジェクトのすべてのフィールドが正しく入力され、Facebookにも正しく投稿されます。
<?php
if(isset($_POST['successmessage'])) {
echo '<div class="info_message" style="margin:0 10px 10px 10px">
<div style="float:left;display:inline;width:200px">
<strong>'.$lang['checkout_text_42'].' '.$lang['checkout_text_43'].'</strong>
<br>'.$lang['checkout_text_44'].'
</div>
<div style="float:left;display:inline">
<a onclick="postToFeed(); return false;" style="cursor:pointer;float:left"><img src="images/post-design-to-fb.png" style="margin-top:4px"></a>
<div id="msg" style="line-height:34px;float:left;margin-left:10px"></div>
</div>
<div style="clear:left"></div>
</div>';
?>
<div id='fb-root'></div>
<script src='http://connect.facebook.net/<?php echo $locale; ?>/all.js'></script>
<script>
FB.init({appId: "123455666777", status: true, cookie: true });
function postToFeed() {
// calling the API ...
var obj = {
method: 'feed',
link: 'http://www.mydomain.com/configurator.php?id=<?php echo $_SESSION['sharetofb'];?>&lang=<?php echo $language;?>',
picture: 'http://www.mydomain.com/images/designs/design-<?php echo $_SESSION['sharetofb'];?>.png',
name: 'I just designed a DIY T-Shirt. Awesome!',
caption: 'Click to check it out and customize it.',
description: 'Choose from 500 different materials, colors, prints, shapes to assemble your unique custom T-Shirt.'
};
function callback(response) {
if (response && response['post_id']) {
document.getElementById('msg').innerHTML = "Your design was posted successfully!";
}
}
FB.ui(obj, callback);
}
</script>
<?php
}
?>
上記のFacebookドキュメントに記載されているダイレクトURLの例を使用し、URLをコピーしてブラウザーに貼り付けると(アプリIDとURLおよびコンテンツに置き換えられます)、画像以外のすべても表示されます。
奇妙なことに、昨日写真を見せて投稿しました。しかし、何度かテストを行い、テスト投稿を壁から投稿して削除した後、写真は投稿されなくなりました。
ここでstackoverflowですべての質問と回答を検索しましたが、画像のURLにダッシュが含まれている問題であることを除外できます。私は本当にそれを理解することができず、Facebookが頻繁に行われると投稿写真をブロックしていると思い込んでいますか?
私を解決策に導くことができるヒントに感謝します。