我試着建立我們的下一個應用程序的基礎下面Facebook's Open Graph Tutorial但由於某種原因,我收到錯誤拋出我無論我如何嘗試發佈操作。難度發佈操作到時間線
我會盡可能地深入,因爲我希望它對於所有開發人員掌握新時間表非常有用。
我已經定義了一個戰鬥行動,並建立每個時使用默認設置的英雄對象。 超越遊戲是我的名字空間。
$id
是Facebook用戶的用戶名(我嘗試使用/ me /,直接ID在過去對我來說一直不太成問題)。
$herourl
是指向一個獨立的網頁包含以下內容的urlencoded的字符串:
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# transcendgame: http://ogp.me/ns/fb/transcendgame#">
<meta property="fb:app_id" content="[my id]">
<meta property="og:type" content="transcendgame:hero">
<meta property="og:url" content="http://apps.facebook.com/transcendgame/">
<meta property="og:title" content="Hercules">
<meta property="og:description" content="As this game is still in development, you can ignore this feed post!">
<meta property="og:image" content="[an image url]">
應用畫布頁包含下面的代碼。它應該向用戶的時間表發佈新的操作事件,但一直給我「發生錯誤」。我也嘗試過與示例英雄對象(samples.ogp.me ...)一樣的問題。
<script>
function doTest()
{
FB.api('/<?=$id?>/transcendgame:battle' +
'?hero=<?=$herourl?>','post',
function(response) {
if (!response || response.error) {
alert('Error occured');
} else {
alert('Post was successful! Action ID: ' + response.id);
}
});
}
</script>
<a href="#" onclick="doTest(); return false">Test fb post</a>
我正在調用JS SDK並正確運行fb.init。我真的不知道問題出在哪裏,更不用說如何解決問題了。
編輯:我已經正確添加該用戶的訪問令牌API調用:
FB.api('/me/transcendgame:battle' +
'?hero=<?=$herourl?>&access=<?=$token?>','post',
不過,我發現了以下錯誤:
Type: OAuthException
Message: (#3502) Object at URL [url] has og:type of 'game'. The property 'hero' requires an object of og:type 'transcendgame:hero'.
這很奇怪,因爲網頁確實有og:type設置正確,正如此問題前面所列。這是我需要解決的一些Facebook呃逆?
SECOND EDIT:修復了最後的問題。
的OG:URL我曾以爲重新指向應用程序的畫布的URL,但它需要引用本身來代替。例如,如果您的對象在mydomain.com/object1.php上,則代碼必須爲:
<meta property="og:url" content="http://www.mydomain.com/object1.php">
希望這有助於他人。
希望測試版本也爲我修復它!我欣賞你使用的擴展JS片段,我是死硬的PHP,但對JS毫無頭緒。抓取並追加訪問令牌解決了這個問題,但現在我又有了一個沒有多大意義的問題。我將編輯我的原始問題以詳細說明。 –
我有og:url設置爲頁面本身的URL,所以試着看看它是否有效。 – Teddy