og:type and valid values : constantly being parsed as og:type=website - facebook

Could someone sugggest why the FB debug/lint tool is saying og:type is "website" despite the og:type being set to og:bar?
https://developers.facebook.com/tools/debug/og/object?q=www.shamrockirishbar.com%2Fpubquiz
As a result its not validating the og:location and similar which are relevant for the "bar" type.

bar is deprecated. Please check ogp.me for the current docs.

As of May 2018, you can find the full list here: https://developers.facebook.com/docs/reference/opengraph#object-type
apps.saves An action representing someone saving an app to try
later.
article This object represents an article on a website. It is the
preferred type for blog posts and news stories.
book This object type represents a book or publication. This is an
appropriate type for ebooks, as well as traditional paperback or
hardback books. Do not use this type to represent magazines
books.author This object type represents a single author of a
book.
books.book This object type represents a book or publication. This
is an appropriate type for ebooks, as well as traditional paperback or
hardback books
books.genre This object type represents the genre of a book or
publication.
books.quotes
Returns no data as of April 4, 2018. An action representing someone quoting from a book.
books.rates
Returns no data as of April 4, 2018. An action representing someone rating a book.
books.reads
Returns no data as of April 4, 2018. An action representing someone reading a book.
books.wants_to_read
Returns no data as of April 4, 2018. An action representing someone wanting to read a book.
business.business This object type represents a place of business
that has a location, operating hours and contact information.
fitness.bikes
Returns no data as of April 4, 2018. An action representing someone cycling a course.
fitness.course This object type represents the user's activity
contributing to a particular run, walk, or bike course.
fitness.runs
Returns no data as of April 4, 2018. An action representing someone running a course.
fitness.walks
Returns no data as of April 4, 2018. An action representing someone walking a course.
game.achievement This object type represents a specific
achievement in a game. An app must be in the 'Games' category in App
Dashboard to be able to use this object type. Every achievement has a
game:points value associate with it. This is not related to the
points the user has scored in the game, but is a way for the app to
indicate the relative importance and scarcity of different
achievements: * Each game gets a total of 1,000 points to distribute
across its achievements * Each game gets a maximum of 1,000
achievements * Achievements which are scarcer and have higher point
values will receive more distribution in Facebook's social channels.
For example, achievements which have point values of less than 10 will
get almost no distribution. Apps should aim for between 50-100
achievements consisting of a mix of 50 (difficult), 25 (medium), and
10 (easy) point value achievements Read more on how to use
achievements in this guide.
games.achieves An action representing someone reaching a game
achievement.
games.celebrate An action representing someone celebrating a
victory in a game.
games.plays An action representing someone playing a game. Stories
for this action will only appear in the activity log.
games.saves An action representing someone saving a game.
music.album This object type represents a music album; in other
words, an ordered collection of songs from an artist or a collection
of artists. An album can comprise multiple discs.
music.listens
Returns no data as of April 4, 2018. An action representing someone listening to a song, album, radio station,
playlist or musician
music.playlist This object type represents a music playlist, an
ordered collection of songs from a collection of artists.
music.playlists
Returns no data as of April 4, 2018. An action representing someone creating a playlist.
music.radio_station This object type represents a 'radio' station
of a stream of audio. The audio properties should be used to identify
the location of the stream itself.
music.song This object type represents a single song.
news.publishes An action representing someone publishing a news
article.
news.reads
Returns no data as of April 4, 2018. An action representing someone reading a news article.
og.follows An action representing someone following a Facebook
user
og.likes An action representing someone liking any object.
pages.saves An action representing someone saving a place.
place This object type represents a place - such as a venue, a
business, a landmark, or any other location which can be identified by
longitude and latitude.
product This object type represents a product. This includes both
virtual and physical products, but it typically represents items that
are available in an online store.
product.group This object type represents a group of product
items.
product.item This object type represents a product item.
profile This object type represents a person. While appropriate
for celebrities, artists, or musicians, this object type can be used
for the profile of any individual. The fb:profile_id field
associates the object with a Facebook user.
restaurant.menu This object type represents a restaurant's menu. A
restaurant can have multiple menus, and each menu has multiple
sections.
restaurant.menu_item This object type represents a single item on
a restaurant's menu. Every item belongs within a menu section.
restaurant.menu_section This object type represents a section in a
restaurant's menu. A section contains multiple menu items.
restaurant.restaurant This object type represents a restaurant at
a specific location.
restaurant.visited An action representing someone visiting a
restaurant.
restaurant.wants_to_visit An action representing someone wanting
to visit a restaurant
sellers.rates An action representing a commerce seller has been
given a rating.
video.episode This object type represents an episode of a TV show
and contains references to the actors and other professionals involved
in its production. An episode is defined by us as a full-length
episode that is part of a series. This type must reference the series
this it is part of.
video.movie This object type represents a movie, and contains
references to the actors and other professionals involved in its
production. A movie is defined by us as a full-length feature or short
film. Do not use this type to represent movie trailers, movie clips,
user-generated video content, etc.
video.other This object type represents a generic video, and
contains references to the actors and other professionals involved in
its production. For specific types of video content, use the
video.movie or video.tv_show object types. This type is for any
other type of video content not represented elsewhere (eg. trailers,
music videos, clips, news segments etc.)
video.rates
Returns no data as of April 4, 2018. An action representing someone rating a movie, TV show, episode or another piece
of video content.
video.tv_show This object type represents a TV show, and contains
references to the actors and other professionals involved in its
production. For individual episodes of a series, use the
video.episode object type. A TV show is defined by us as a series or
set of episodes that are produced under the same title (eg. a
television or online series)
video.wants_to_watch
Returns no data as of April 4, 2018. An action representing someone wanting to watch video content.
video.watches
Returns no data as of April 4, 2018. An action representing someone watching video content.

I know this is an old one but it comes up top of Google and all the links provided now seem out of date.
This is the latest list of types Facebook accepts for 2022:
https://ogp.me/#types
If you don't use one of these then the type will default to 'website' which is best used for home pages/summarizing a web site.
It looks like the place attribute is no longer supported and the old Facebook page has gone.

This started happening to my site after I enabled namespace and custom Open Graph actions and objects. Once you enable it, you lose support for standard object types such as bar, or in my case article. (or it's possible Facebook may have deprecated certain types, I'm not 100% sure) When no supported type is specified, Facebook defaults to website.
To fix this what you need to do is go into your app dashboard, select your app, then go to the Open Graph section. Under "Object Types", define your own types, such as "bar."
Next you will have to change your meta tags to look like this:
<meta property="og:type" content="your_namespace:your_object_type" />
If you click on "Get Code" next to the object type in the dashboard, Facebook will provide you with an example of meta tags to use.

I have moved into the world of namespace specific open graph data and therefore dont rely on the FB types. See "edit open graph" in the apps dev tool dashboard.

Make sure your article:author data is a Facebook author URL. Unfortunately, that conflicts with what Pinterest is expecting. It's the best thing about standards, there are so many ways to implement them!
<meta property="article:author" content="https://www.facebook.com/mpatnode76">
But Pinterest wants to see something like this:
<meta property="article:author" content="Mike Patnode">
We ended up swapping the formats depending upon the user agent. Hopefully, that doesn't screw up your page cache. That fixed it for us.
Full disclosure. Found this here: https://surniaulula.com/2014/03/01/pinterest-articleauthor-incompatible-with-open-graph/

Related

Contentful and get all city pages links that are in a particular state

I'm having a devil of a time modeling things in Contentful. I did the tutorials, but still don't even know where to begin.
I sell tutoring services, brokering, in many states. So, I want to display, on front page, all the states... but when click, you get all the cities... you click a city, you get all the tutoring topics.
This, as you can imagine, will get into the thousands as I am very SEO conscious and will need custom info per city etc..
How would/should I model the US, then then states, then cities...and each city could have like 4 or 5 separate tutoring pages. 1 specific for Math, or Spanish or Guitar etc..
I guess US & state will have one to many relationships, but how do I create "links", so I can:
List out all states
List out all cities
Get particular city page with tutorials. User would have selected something like /us/california/san-diego/lesson-guitar.
So, user lands on homepage
Alabama
Arkansas
California
Connecticut
etc...
`1. Person clicks on California..
2. Person sees some California info, like a page:California
3. At bottom of page, a list of all the serviceable cities.
4. Person clicks city. Let's say San Diego. They see the page:sanDiego page.. with list of tutoring etc..`
There seems there will be page types, but not sure how to add links to the various cities, states etc...
Like, what field would I add to show all valid states in the US? Would that be a separate content type? Or would I add that to the various "pages" and would it be an array or ?
So confusing.
In this case, I'll create a separate content type for States and Cities. In the tutoring and brokering content types, I will then add a reference field that would refer to the City and State content type.
Hope this helps :)

Is there a way to display the Product Title before the Brand Name in Facebook Page Shop?

I exported all the tags required by Facebook from my third-party online store (Lightspeed) and the data stream works as expected in terms of automatic updates, but products on my facebook page shop (Shop tab) are displayed with the brand name first — L'Oratoire Saint-Joseph — followed by the product title.
See it live : https://www.facebook.com/osaintjoseph/
The unfortunate result is that the text under many products is exactly the same. Is there a way to display the Product Title before the Brand Name?
Lightspeed support told me I had to take it up with Facebook. I am awaiting their reply. See my questions in the fb developer forum here : https://developers.facebook.com/settings/developer/community/
There are 3 ways to add products to Facebook Shop:
Manually
Data feed (e.g. CSV import)
Third party plugins (which you’re using).
Manually – the user is only able to enter 4 properties; title, description, image & variant. See facebook.com/business/help/293945421560847. There is no concept of product brand.
Data feed – this allows for additional properties, such as brand name. In the table, see example files and select product (csv, tsv or xml) facebook.com/business/help/120325381656392?id=725943027795860. However it looks like all Facebook does is concatenate string, that's the product title becomes "{brandName} – {productName}". It look like brand name is not used anywhere else. Nor is there an option to change the way it's displayed. If you edit the product, you should be able to see this in the Product Title.
Shop tab (third party plugin) – (May be it's me, but I found their documentation hard to follow) – They send an XML feed to Facebook support.shoptab.net/hc/en-us/articles/200583466-XML-Feed-for-Facebook-Storefront-with-ShopTab. They do not appear to have a concept of brand. Try and examine the data. I would expect the brand name to appear in the product title. Alternatively they allow for CSV, which also doesn't contain brand name support.shoptab.net/hc/en-us/articles/200583906-CCNow-Integration-with-ShopTab-s-Facebook-Store-App
Summary
If possible, examine the data that is sent from Shop tab to Facebook.
Try and find out if you’re able to exclude / alter the string concatenation of brand name from product title in Shop tab. If not raise a support ticket with them.
Alternatively see if you can manually edit the product title in Facebook. It’s not a long-term fix, but helps understand how the system are integrated.

Facebook - interests required List<unsigned int32> although Page ID are strings

I currently developed a solution for custom uploading videos for specific customers.
One of my customers need the ability to specify "interests" for a video he upload.
From the API documentation, interests are:
interests
list
One or more IDs of pages to target fans of pages.Use type of page to get possible IDs as find Targeting Options and use the returned id to specify.
There is some mis-documentation regarding this feature: "find Targeting Options" does not talks about type=page.
But, still, I can search for page, using the "search" endpoint: /2.5/search?q=gsw&type=page and get the ID of the page.
As to my understanding, I can specify a page, for example "Golden State Warriors" fan page, specify its id, and then every user which follows this page will be considered as interested in my post.
So, I think my flow should be:
1) Search for the requested page using the "search" api. Get the page's IDS.
2) When creating the video, specify the ID in the "interests" parameter list.
Now, I need to know how to specify the ID in the interests list - The documentation says it list, but the page ID as a number string...
So in conclusion, I would like some help in verifying that all that I have written is correct and make sense, and also to know how to get the int32 id of a page - is it just mistake in the documentaion?
Thanks!

Do I need to repeat all the categories on all sub-pages?

I am marking up the content on my website with microdata. I am a Local Business and use this hierarchy:
Organization/LocalBusiness/TravelAgency/
Do I need to repeat all the relevant Properties for each category: PLace, Organization, Local Buisness and Travel Agency in each page of my website?
http://schema.org/TravelAgency
I have many sub-pages and it is over-kill to repeat everytime on the page the location, address, telephone, etc. of the business.
For specific sub-pages can I cut out the higher categories?
For example: If I have a page: Special Offer Weekend in New York
Do I add all the Properties or can I just add the ones relevant for TravelAgency and potentially Price?
http://schema.org/PriceSpecification
Thanks for your help
PS: I ask this because I have read that it is not good to have invisible content for the user.
Schema.org doesn’t define any required properties, so everything is optional.
But note that there is no concept of "website" in Microdata. The Microdata always gets parsed per document. So if a Microdata consumer parses your "Special Offer Weekend in New York" page, it will not get the telephone/address/etc. of the business, even if these would be specified on all of your other pages.
If you don’t want to markup all the visible content about your business on every page, you might want to link to a page where this data is marked up (e.g., the front page) by using an appropriate Schema.org property.
Example: On "Special Offer Weekend in New York" (Offer), you could use the seller property to link to your front page (TravelAgency).
It’s not defined in Microdata that those links should be followed for parsing Microdata, but that way parsers can (if they want to) understand that all these pages belong to the same TravelAgency.

Facebook App: How to get interest-lists posts/feed?

I'm new to programming Facebook apps, so please forgive my ignorance and my use of non-formal terms.
There is an option on Facebook to create mixed lists of friends, liked-pages, and subscriptions so that you can see a "custom feed" containing posts only from the members of the list.
If a user is subscribed to such a list, can my app access the "custom feed"? Or at least the array of members of this list? (which I can then iterate through and fetch the posts published by these members)
I've read about the FriendList object of the Graph API, but when I tested it on myself with This Link (sources: Graph API, FriendList), it didn't show all of my created lists, but only those that are strictly defined as "friend lists" - i.e. lists containing only friends (and not liked-pages or subscriptions).
But I've noticed three things-
On my homepage the "friend-lists" (those that do appear in the above link) have a different icon (a little blue person) than the "mixed-lists" (a blue square with an "rss-wave" icon)
All of my "friend-lists" are old lists which I have created a few years ago. The newer lists are "mixed-lists". I can tell the difference both by the icon and the fact that the new lists don't appear in the above link.
When I added a liked-page to one of my "friend-lists" it did not change its type (same icon and still appears in the above link).
Which leads me to these questions-
What is the difference between these types of lists?
And for that matter how many types of lists are there? Are they managed differently?
How can my app access these "mixed-lists"? I want a list of all the lists the user is subscribed to, and I want my app to be able to read the posts published on these lists.
I hope that was clear enough.
Thanks!
EDIT:
I noticed another big difference between these types of lists: the "friend-lists" show up under the "Friends" headline on the left side menu (when you press "more" you can see all of them). The "mixed-lists" as I called them show up under the "Interests" headline. So this must be the difference. I think they are pretty much the same as far as what types of members you can add to the list. The difference must be that "friend-lists" are only for the user who created them, while "interest-lists" (a.k.a "mixed-lists") can be published and subscribed to by other people.
I'll try to find documentation about "interest-lists". If anyone already knows the answer please share :)
I just tested it – created a list, added one of my friends and one of the pages I’m a fan of to it.
It shows up in the Graph API explorer with "list_type": "user_created" – but /listid/members only shows the friend I put onto that list, not the page.
This is consistent with what the docs say on the members connection,
members: All of the users who are members of this list.
So there currently seems to be no way to get info about pages on such lists. (Anybody knows something different, they might correct me.)