在javascript中发布自定义Facebook故事

时间:2014-08-08 18:22:13

标签: javascript html facebook facebook-graph-api facebook-javascript-sdk

我已经经历了Facebook陈旧的文档的丛林,遍布谷歌和遍布堆栈溢出。似乎有些事我似乎无法使用图形对象发布自定义故事。我有一个应用程序,它只是我在Flash构建器中构建的一个基本测验,它会询问您4个问题,并根据您的权限给出一个分数。在将来,我希望能够代表用户发布一个故事,指出他们的分数,并将他们引导到应用程序。

然而,我被困在方方面面,它正在发布一个自定义故事。一旦我克服了这个障碍,我就能从那里弄明白。

所以,这就是我所拥有的。我正在使用Flash Builder构建一个Web应用程序,我在我的域(https域)上托管。在hmtl模板中,我设置了对象" Quiz"的元标记信息,该信息作为index.html页面托管在域中。这是我的元标记信息

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# gqt_test: http://ogp.me/ns/fb/gqt_test#">
        <meta property="fb:app_id"      content="my app id" /> 
        <meta property="og:type"        content="getquiztool_test:quiz" /> 
        <meta property="og:url"         content="https://my domain.com/getquiztool/" /> 
        <meta property="og:title"       content="Sample Quiz" /> 
        <meta property="og:image"       content="https://my domain.com/getquiztool/game.png" /> 
        <meta property="gqt_test:score" content="Sample score" /> 

我也正在加载像这样的facebook SDK,它之前用于一些简单的代码测试,例如发布类似action

(function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&appId=258148224385655&version=v2.0";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

我还从应用页面&#34; Open Graph&#34;创建了自定义故事。部分,使用action&#34; Take&#34;以及object&#34;测验&#34;。

这对我有用。这两个按钮。第一个允许用户将网站共享为链接。第二个是尝试做#t; feed-gaming&#34;,我停止努力,因为我相信他们大多停止支持它。它的工作原理是,它允许您使用嵌入帖子中的swf共享站点链接(但无法运行)。

<div class="fb-share-button" data-href="mydomain.com/app_namespace"></div>
    <button onclick="var obj = {
        method: 'feed',
        title: 'Test',
        link: 'mydomain.com/app_namespace'
        };

        function callback(response) {
        console.log(response);
        }

        FB.ui(obj, callback);"
        >Share me, please</button>

所以Facebook SDK正在我的域名上工作。这里有什么不起作用。使用他们提供的示例代码。我已经改变了十几次,喜欢5组不同的代码,所以我甚至不确定每个代码的工作原理是什么。

function shareStatus()
    {
        FB.ui(
        {
            method: 'share_open_graph',
            action_type: 'getquiztool_test.quiz',
            action_properties: JSON.stringify(
            {
                object:'https://mydomain.com/app_namespace/',
            })
        }, function(response){});
    }

当我调用此函数时,我从facebook弹出窗口获取该操作类型无效。这真的是有道理的,因为那是一个对象,而不是一个动作。但是我不确定我应该在这个函数中调用什么。

我已尝试从Facebook为我生成的代码,如此

FB.api(
  'me/gqt_test:take',
  'post',
  {
    quiz: "http://samples.ogp.me/258211017712709"
  },
  function(response) {
    // handle the response
  }
);

shareStatus()函数中,但是当我这样做时,我什么都没得到。没有回应,没有错误。

我很抱歉文字的墙,但我只是想知道我在5分钟的沮丧之后不会来这里。这是大约3天,大概10个小时,摆弄这个,试图学习文档并试图获得结果。我学到了很多,但似乎没有一个与我有关。我错过了什么吗?

至少我可以要求的是你可能知道的详细教程,只是一个链接。喜欢,一步一步的繁琐步骤。因为facebook文档只是假设你知道它的其他部分是如何工作的,链接会带你进入圈子,从不清楚地解释事情或给出例子。

1 个答案:

答案 0 :(得分:0)

所以我明白了。我怀疑,这是一种非常愚蠢的东西。而且,就像我在任何地方问一个问题一样,它发生在几个小时之后。虽然,我需要使用的应用程序命名空间是我的应用程序名称的缩写,我真的不记得设置自己(而不是像“myappnamespace_test”那样是“man_test”,所以我的app命名空间缩写为MAN)

这是一个对我有用的电话,因为其他一切都已到位。

function shareStatus()
    {
        FB.ui(
        {
            method: 'share_open_graph',
            action_type: 'man_test:take',
            action_properties: JSON.stringify(
            {
                quiz:'https://mydomain.com/whereTheObjectWithMetaTagsIs',
            })
        }, function(response){});
    }