开发者

How to set title, img, and description on wall post made from facebook comments

开发者 https://www.devze.com 2023-03-20 23:47 出处:网络
I\'m building a facebook iFrame application that uses facebook comments.When a user leaves a comment the default action is that this comment will be posted to their wall.The wall post is something alo

I'm building a facebook iFrame application that uses facebook comments. When a user leaves a comment the default action is that this comment will be posted to their wall. The wall post is something along the lines of

UserX commented on example.com
# the comment text goes here

http://example.com
apps.facebook.com

You should be able to include an image, a description, and set the link to be the title of the page (where it says http://example.com above the apps.facebook.com), but I'm having no luck getting this to work.

I thought it would grab the information from my meta tags (as long as they included the appropriate 'og' tags), but that isn't working. Nor am I able to define values for title, url, image etc. in the same way that you can for normal wall posts.

Anyone have any idea how to get this working??

EDIT:

Here are t开发者_运维知识库he meta tags I currently am using.

<meta property="og:title" content="USERNAME'S PAGE" /> 
<meta property="og:type" content="website" /> 
<meta property="og:url" content="http://example.com"/> 
<meta property="og:image" content="http://example.com/images/wall-post.png" /> 
<meta property="og:description" content="Some description goes here." />


Use URL Linter to Debug http://developers.facebook.com/tools/lint/

Make sure all meta tags are correct and if you've made some changes, it takes some time to update for facebook and here's a sample, this is a working version:

<!doctype html>
<html xmlns:og="http://ogp.me/ns#"
      xmlns:fb="https://www.facebook.com/2008/fbml" lang="en">
<head>
  <meta charset="utf-8">
  <title>Facebook Comment Box Sample</title>
    <meta property="og:title" content="YOUR-POST-TITLE"/>
    <meta property="og:type" content="website"/>
    <meta property="og:url" content="http://YOUR-SITE-URL"/>
    <meta property="og:image" content="http://YOUR-IMAGE-URL"/>
    <meta property="og:site_name" content="YOUR-SITE-TITLE"/>
    <meta property="og:description" content="YOUR-DESCRIPTION"/>
    <meta property="fb:admins" content="YOUR-USER-ID"/>
</head>
<body>
<h1>Facebook Comment Box:</h1>
<div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:comments href="http://YOUR-SITE-URL" num_posts="10" width="500"></fb:comments>
</body>
</html>


OK, after a lot of stumbling around I figured this out.

My iFrame application requires facebook authentication before accessing the application (as I believe all facebook apps do). This means that the facebook crawlers were unable to crawl my homepage and pick up the og: meta tags.

To solve this I first had to figure out what the facebook crawler looks like. I logged the HTTP_USER_AGENT for all requests and then used the facebook URL Linter (http://developers.facebook.com/tools/lint/) to ping my site.

The facebook crawler identifies itself as "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

Once I had that I was able to just add a little conditional logic to let the crawler bypass authentication and access my site. I hope this helps others.


First I made sure I had all my meta properties set, then I just put my code in this:

if (strpos($_SERVER['HTTP_USER_AGENT'],"externalhit_uatext")<5)
   {
   }
0

精彩评论

暂无评论...
验证码 换一张
取 消