如何通过我的FB应用程序在我的Feed上发布自定义故事?

时间:2014-01-10 19:03:09

标签: php facebook-graph-api facebook-php-sdk facebook-opengraph

我创建了一个处于开发模式的应用,但我没有提交它进行审核。我创建了一个网站(在我的特定子域中),我希望在某些用户操作上,在用户的FB提要上发布自定义。

我创建了一个自定义故事,其中包含动词“Grok”和对象“Idea”(虚构以防万一你想知道)。从那以后(好的,2天),我试图调用FaceBook的 php OpenGraph API函数api()来发布一些内容,但没有成功。

我尝试了许多不同的参数和参数组合(下面列出了基本原理),包括FB自己的代码示例,但无济于事。我也在网上搜索有关该主题的教程和论坛问题,但令我惊讶的是,没有找到太多材料,当然也没有解决我的问题。

那么我如何在PHP中将自定义故事发布到我的FB提要?

注1:我相信我的登录过程正确。

注意2:动作Grok有一个灰色的圆点,上面写着“未批准”,但我得到的错误信息从未提及需要批准

我读过


现在

  • 10我尝试过的事情
  • 20为什么
  • 30我收到的错误消息
  • 40以及我后来如何更改我的代码
  • 50 goto 10

FB的Grok示例代码

$response = $facebook->api(
    'me/myapp:grok',
    'POST',
    array('idea' => "http://myapp.mydomain.com/idea?i=".$idea_id)
    );
// handle the response

错误讯息:Fatal error: Uncaught OAuthException: (#3502) Object at URL http://myapp.mydomain.com/idea?i=1 has og:type of 'website'. The property 'idea' requires an object of og:type 'myapp:idea'. thrown in ...

此时我添加了以下html元标记:

<meta property="og:type" content="myapp:idea" />
<meta property="og:title" content="Test Title" />
<meta property="og:site_name" content="civilizationone" />
<meta property="fb:app_id" content="1234567890" />
<meta property="og:description" content="Test Desc" />

并收到相同的错误消息。所以我试过了:

FB的Idea示例代码

$response = $facebook->api('me/objects/myapp:idea',
                           'POST',
                           array('app_id' => 1234567890,
                                 'type' => "idea",
                                 'url' => "http://myapp.mydomain.com.br/idea?i=".$idea_id,
                                 'title' => "test",
                                 'description' => "")
                          );
// handle the response

错误讯息:Fatal error: Uncaught OAuthException: Cannot specify type in both the path and query parameter. thrown in ...

所以我认为类型是idea并试图通过动作替换对象:

$response = $facebook->api('me/objects/myapp:grok', // Changed here
                           'POST',
                           array('app_id' => 1234567890,
                                 'type' => "idea",
                                 'url' => "http://myapp.mydomain.com.br/idea?i=".$idea_id,
                                 'title' => "test",
                                 'description' => "")
                          );
// handle the response

相同的错误消息,所以我尝试了混合:

$response = $facebook->api(
    'me/objects/myapp:idea',
    'POST',
    array('idea' => "http://myapp.mydomain.com/idea?i=".$idea_id)
    );

错误讯息:Fatal error: Uncaught OAuthException: (#100) The parameter object is required thrown in ...

另一次尝试:

$response = $_SESSION['facebook']->api('me/civilizationone:grok',
                                       'POST',
                                        array('app_id' => 390668467710669,
                                              'type' => "idea",
                                              'url' => "http://myapp.mydomain.com.br/idea?i=".$idea_id,
                                              'title' => "test",
                                              'description' => "",)
                                      );

错误讯息:Fatal error: Uncaught Exception: The action you're trying to publish is invalid because it does not specify any reference objects. At least one of the following properties must be specified: idea.

我尝试过其他组合,这些组合很难以列出。所以我甚至不知道要走哪条路:

  • 依靠HTML元数据并只提供网页的网址?
  • 在函数调用中提供所有详细信息,以便删除元数据吗?

0 个答案:

没有答案