Facebook开放图。元标记,本地主机,自定义操作和测试

时间:2013-01-14 13:01:23

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

这是关于Facebook开放图表实施的一系列问题。

因此,我对api进行了查询:$this->facebook->api('me/namespace:action', 'post', $args );

我的第一个问题是帖子出现在哪里?例如,如果我使用如下参数进行调用:

    $args = array(
            //'message'   => 'I just posted a pub review at PubJudge.com',
        'website'=>'www.pubjudge.com',
        'user'=>current_url(),
        'link'      => 'http://www.pubjudge.com/',
        'caption'   => 'Independent, social, pub reviews.'
    );

帖子显示在我的时间轴下的“活动”

据我了解,如果用户明确分享某个动作,它将出现在时间轴上。这是对的吗?

“fb:explicit_shared”是一个应该在$ args数组中传递的参数吗?

接下来是Facebook的自定义元数据。在这种情况下,我的obect是一个用户,我通过$ args数组传递他们的URL。 Facebook然后刮擦此数组以从此链接上的自定义元标记获取数据。它是否正确? 此网址是否必须是启动操作的网址?我可以在我的网站上没有一个页面,它只是根据$ _GET变量生成自定义元标记 - 这样我就可以保留所有这些复杂的Facebook内容,而不依赖于主网站。

有人知道为什么Facebook会为这样的开放式图形操作获取数据吗?

最后因为Facebook刮擦这样的数据我无法在我的localhost上测试这个功能。 (我可以,但它会非常复杂)我选择的是一个testing.domain.com地址,用于测试我的网站和此功能,同时将domain.com作为我的主要稳定网站。

我还创建了两个应用程序..我的主应用程序和测试应用程序,因为如果我使用我的主应用程序,我必须将网站网址更改为testing.domain.com然后打破我的稳定网站。这是一种合适的方法吗?

1 个答案:

答案 0 :(得分:3)

  

据我所知,如果用户明确地共享一个动作,它将会   出现在时间轴上。这是对的吗?

是的,这是正确的。您可以在Facebook docs for explicit sharing找到更多信息。要从文档中注明,您必须将您的操作标记为能够在您的应用仪表板上明确共享,而Facebook必须批准它。

  

“fb:explicit_shared”是否应该传入的参数   $ args数组?

  

接下来是Facebook的自定义元数据。在这种情况下,我的对象是一个   用户,我通过$ args数组传递他们的URL。 Facebook然后   擦除此数组以从此链接上的自定义元标记获取数据。   这是对的吗?

是的,Facebook会抓取您传递的网址,以便他们可以从该链接的OG标记中获取数据。

  

此网址是否必须是启动操作的网址?   我可以在我的网站上没有一个只生成自定义元的页面   基于$ _GET变量的标签 - 这样我可以保留所有这些   复杂的Facebook内容独立于主站点。

不,它不一定是生成操作的URL。您可以在自己的网站上设置单独的页面,事实上,您甚至可以使用javascript将登陆该页面的用户重定向到更合适的页面。

  

有谁知道为什么Facebook会获取开放式图表操作的数据   这无论如何?

这可能是一个比你意识到的更深层次的问题。简而言之,他们正在尝试创建一个语义网。答案很长就是一篇文章。

  

最后因为Facebook刮擦这样的数据我无法测试这个   我的localhost上的功能。

您可以使用在大多数情况下都能正常工作的反向代理(如果您使用反向代理的端口,我看到了照片问题)。不是很复杂。像下面这样的东西效果很好:

ssh -nN -f -R externalhost.com:49080:localhost:80 your@credentials.biz
  

我还创建了两个应用程序..我的主应用程序和测试应用程序,因为   如果我使用我的主应用程序,我必须更改网站的网址   testing.domain.com然后破坏我的稳定网站。这是一个   合适的方法?

是的,这是正常的。我们通常有一个开发应用程序(localhost),一个临时应用程序(用于测试的外部主机)和一个生产应用程序。