我有一个游戏,当用户“解决”一个“字”时,它应该调用OG请求。
这是电话:
curl -F 'access_token=abc' \
-F 'tw=theword_solved_goes_here' \
-F 'word=https://drawabble.com/og/word.php' \
-F 'scrape=true' \
'https://graph.facebook.com/me/drawabble:solve'
对象的网址是 - https://drawabble.com/og/word.php?&tw=theword_solved_goes_here
,页面脚本看起来像这样(word.php)
<?
if( $_GET['fb_action_ids'] ){
header("Location: http://drawabble.com");
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"
xmlns:fb="https://www.facebook.com/2008/fbml">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# drawabble: http://ogp.me/ns/fb/drawabble#">
<meta property="fb:app_id" content="360199164024147" />
<meta property="og:type" content="drawabble:word" />
<meta property="og:title" content="<?=($_GET['tw'])? $_GET['tw'] : $_POST['tw']?>" />
<meta property="og:url" content="https://drawabble.com/og/word.php?tw=<?=($_GET['tw'])? $_GET['tw'] : $_POST['tw']?>" />
<meta property="og:description" content="Solved on http://drawabble.com" />
<meta property="og:image" content="https://drawabble.com/drawabble.png" />
<meta property="drawabble:tw" content="<?=($_GET['tw'])? $_GET['tw'] : $_POST['tw']?>" />
</html>
错误是{“error”:{“type”:“Exception”,“message”:“URL上的对象'https://drawabble.com/og/word.php?tw='类型'drawabble :'''无效,因为未提供“string”类型的必需属性“og:title”。“}}
所以我假设标签没有抓住发布的或_get网址...无法找出原因。
任何帮助表示赞赏!
答案 0 :(得分:1)
在您的cURL通话中,提供的网址为https://drawabble.com/og/word.php
现在,如果你刮掉那个,og:title是一个空白字符串,因为我们没有传递一个tw get param。我们将两个变量传递给Facebook,但这不会传递给您发布的代码中的应用程序。
因此,请尝试将cURL调用更改为...
curl -F 'access_token=abc' \
-F 'word=https://drawabble.com/og/word.php?tw=theword_solved_goes_here' \
-F 'scrape=true' \
'https://graph.facebook.com/me/drawabble:solve'