Facebook 如果用户喜欢某个页面,如何发布到新闻提要?

Facebook 如果用户喜欢某个页面,如何发布到新闻提要?,facebook,facebook-graph-api,Facebook,Facebook Graph Api,最近,我听说,通过Facebook开放图形API 我一直在尽我最大的努力学习这个榜样,并且已经做到了 据我所知,有必要采取以下措施: 创建必要的Open Graph标记,包括Facebook应用程序的标记 我已经使用 在页面中添加一个like按钮 “喜欢”这一页 获取访问令牌(发布消息) 发布到提要 curl -F 'access_token=ACCESS_TOKEN_FROM_STEP_4' -F 'message=Hello Likers' -F 'id=http://dl.dropb

最近,我听说,通过Facebook开放图形API

我一直在尽我最大的努力学习这个榜样,并且已经做到了

据我所知,有必要采取以下措施:

  • 创建必要的Open Graph标记,包括Facebook应用程序的标记
    • 我已经使用
  • 在页面中添加一个like按钮
  • “喜欢”这一页
  • 获取访问令牌(发布消息)

  • 发布到提要

    curl -F 'access_token=ACCESS_TOKEN_FROM_STEP_4' -F 'message=Hello Likers' -F 'id=http://dl.dropbox.com/u/3618086/test.html' https://graph.facebook.com/feed
    
  • 在这一点上,信息应该发送给任何喜欢该页面的人。相反,我得到了以下错误:

    {
        "error": {
            "message": "(#100) http:\/\/dl.dropbox.com\/u\/3618086\/test.html does not resolve to a valid user ID",
            "type": "OAuthException",
            "code":100
        }
    }
    
    就在这一点上,我感到困惑。我已经通读了这些相关问题:

    并尝试了他们的建议,但都没有成功。我错过了哪一步


    我可以提供进一步的细节;我只是不想问题太长。

    好吧,我解决了我的问题。为了其他人的利益,我在下面列出了我的解决方案

    我上面列出的步骤确实是正确的,但是有一些事情需要进一步解释,以避免我陷入的陷阱

    向在Facebook上喜欢某个项目的人发帖 步骤1:创建Facebook应用程序
    • 您需要访问该页面并创建一个新的应用程序
      • 应用程序不应该需要命名空间或webhosting
    • 为你的申请填写详细资料
      • 首先,您需要选择“使用Facebook登录的网站”。站点URL应与站点所在位置相同。在我的示例中,我在dropbox共享文件夹中托管,因此我使用了
        http://dropbox.com
      • 将应用程序域设置为站点URL的主机名。在我的例子中,这是
        dropbox.com
        ,它将允许Facebook使用
        *.dropbox.com
        。我也可以专门做
        dl.dropbox.com
    步骤2:创建虚拟页面 创建虚拟页面非常重要。我发现我的大多数问题都是由于初始页面设置错误造成的。如果您创建一个虚拟页面,您可以进行实验(或者至少创建另一个虚拟页面),直到一切正常

    • 确保您的页面是正确的,尤其是打开的图形标记。correct看起来像什么?您可以,但我已将
      包含在下面:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
      <head>
          <title>Test</title>
          <link href="http://dl.dropbox.com/u/3618086/test2.html" rel="canonical" />
          <meta property="fb:app_id" content="YOUR_APP_ID">
      
          <meta property="og:type" content="product">
          <meta property="og:title" content="PAGE TITLE" /> 
          <meta property="og:description" content="PAGE DESCRIPTION" /> 
          <meta property="og:image" content="http://www.stanford.edu/group/cardinalballet/Pictures/WebsitePics/portrait-placeholder.jpg">
      
          <meta property="og:site_name" content="SITE_NAME"/>
          <meta property="og:url" content="http://dl.dropbox.com/u/3618086/test2.html">
      </head>
      
    • 获取产品页面的id

      curl -g https://graph.facebook.com/\?id\=PAGE_URL
      
      curl -F 'access_token=ACCESS_TOKEN' -F 'message=MESSAGE' -F 'id=ID_FROM_PREVIOUS_ACTION' https://graph.facebook.com/feed
      
    • 向所有喜欢您的产品页面的人发布消息

      curl -g https://graph.facebook.com/\?id\=PAGE_URL
      
      curl -F 'access_token=ACCESS_TOKEN' -F 'message=MESSAGE' -F 'id=ID_FROM_PREVIOUS_ACTION' https://graph.facebook.com/feed
      
    第五步:成功! 在这一点上,希望一切都进展顺利。作为喜欢该页面的用户,请查看他们的新闻提要。您应该会看到一篇包含标题、图像和描述的文章,这些都在您的页面上。万岁


    …我就是这样解决的。希望这对其他人有价值。如果我遗漏了任何细节,我将很乐意详细说明。

    好的,我解决了我的问题。为了其他人的利益,我在下面列出了我的解决方案

    我上面列出的步骤确实是正确的,但是有一些事情需要进一步解释,以避免我陷入的陷阱

    向在Facebook上喜欢某个项目的人发帖 步骤1:创建Facebook应用程序
    • 您需要访问该页面并创建一个新的应用程序
      • 应用程序不应该需要命名空间或webhosting
    • 为你的申请填写详细资料
      • 首先,您需要选择“使用Facebook登录的网站”。站点URL应与站点所在位置相同。在我的示例中,我在dropbox共享文件夹中托管,因此我使用了
        http://dropbox.com
      • 将应用程序域设置为站点URL的主机名。在我的例子中,这是
        dropbox.com
        ,它将允许Facebook使用
        *.dropbox.com
        。我也可以专门做
        dl.dropbox.com
    步骤2:创建虚拟页面 创建虚拟页面非常重要。我发现我的大多数问题都是由于初始页面设置错误造成的。如果您创建一个虚拟页面,您可以进行实验(或者至少创建另一个虚拟页面),直到一切正常

    • 确保您的页面是正确的,尤其是打开的图形标记。correct看起来像什么?您可以,但我已将
      包含在下面:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
      <head>
          <title>Test</title>
          <link href="http://dl.dropbox.com/u/3618086/test2.html" rel="canonical" />
          <meta property="fb:app_id" content="YOUR_APP_ID">
      
          <meta property="og:type" content="product">
          <meta property="og:title" content="PAGE TITLE" /> 
          <meta property="og:description" content="PAGE DESCRIPTION" /> 
          <meta property="og:image" content="http://www.stanford.edu/group/cardinalballet/Pictures/WebsitePics/portrait-placeholder.jpg">
      
          <meta property="og:site_name" content="SITE_NAME"/>
          <meta property="og:url" content="http://dl.dropbox.com/u/3618086/test2.html">
      </head>
      
    • 获取产品页面的id

      curl -g https://graph.facebook.com/\?id\=PAGE_URL
      
      curl -F 'access_token=ACCESS_TOKEN' -F 'message=MESSAGE' -F 'id=ID_FROM_PREVIOUS_ACTION' https://graph.facebook.com/feed
      
    • 向所有喜欢您的产品页面的人发布消息

      curl -g https://graph.facebook.com/\?id\=PAGE_URL
      
      curl -F 'access_token=ACCESS_TOKEN' -F 'message=MESSAGE' -F 'id=ID_FROM_PREVIOUS_ACTION' https://graph.facebook.com/feed
      
    第五步:成功! 在这一点上,希望一切都进展顺利。作为喜欢该页面的用户,请查看他们的新闻提要。您应该会看到一篇包含标题、图像和描述的文章,这些都在您的页面上。万岁


    …我就是这样解决的。希望这对其他人有价值。如果我遗漏了任何细节,我将很乐意详细说明。

    第4步中的重定向uri应该指向您的站点,而不是:
    https://graph.facebook.com/oauth/access_token
    当我这样做时,我返回的访问令牌是相同的。您收到的令牌是应用程序访问令牌,而不是用户访问令牌。阅读此处如何获取用户令牌:应用程序不能发布到用户页面吗?或者,应用程序不能发布到自己的页面吗?应用程序访问令牌允许您在应用程序墙上发布,但不能在用户墙上发布。步骤4中的
    重定向\u uri
    应指向您的站点,而不是:
    https://graph.facebook.com/oauth/access_token
    当我这样做时,我返回的访问令牌是相同的。您正在接收的令牌是应用访问令牌,而不是用户访问令牌。阅读此处如何获取用户令牌:应用程序不能发布到用户页面吗?或者,应用程序不能发布到自己的页面吗?应用程序访问令牌允许您在应用程序墙上发布,但不能在用户墙上发布。因此,基本上,