Giao thức Open Graph
Giới thiệu
Các giao thức mở Graph cho phép bất kỳ trang web để trở thành một đối tượng giàu có trong một đồ thị xã hội. Ví dụ, điều này được sử dụng trên Facebook để cho phép bất kỳ trang web có cùng chức năng như bất kỳ đối tượng khác trên Facebook.
Mặc dù có nhiều công nghệ và lược đồ khác nhau tồn tại và có thể kết hợp với nhau nhưng không có một công nghệ cung cấp đủ thông tin để đại diện cho bất kỳ trang web nào trong biểu đồ xã hội. Giao thức Open Graph được xây dựng trên các công nghệ hiện có và cho phép các nhà phát triển thực hiện một điều. Sự đơn giản của nhà phát triển là một mục tiêu chính của giao thức Open Graph đã thông báo nhiều quyết định thiết kế kỹ thuật .
Siêu dữ liệu cơ bản
Để biến các trang web của bạn thành đồ thị, bạn cần phải thêm siêu dữ liệu cơ bản vào trang của bạn. Chúng tôi đã dựa vào phiên bản ban đầu của giao thức trên RDFa , điều đó có nghĩa là bạn sẽ đặt các
<meta>
thẻ bổ sung vào <head>
trang web của mình. Bốn đặc tính bắt buộc cho mỗi trang là:og:title
- Tiêu đề của đối tượng của bạn như nó sẽ xuất hiện trong đồ thị, ví dụ, "The Rock".og:type
- Loại đối tượng của bạn, ví dụ: "video.movie". Tùy thuộc vào loại bạn chỉ định, các thuộc tính khác cũng có thể được yêu cầu.og:image
- Một URL hình ảnh phải đại diện cho đối tượng của bạn trong biểu đồ.og:url
- URL hợp quy của đối tượng của bạn sẽ được sử dụng làm ID vĩnh viễn của nó trong biểu đồ, ví dụ: "http://www.imdb.com/title/tt0117500/".
<html prefix="og: http://ogp.me/ns#">
<head>
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
...
</head>
...
</html>
Metadata tùy chọn
Các thuộc tính sau đây là tùy chọn cho bất kỳ đối tượng nào và thường được đề nghị:
og:audio
- Một URL tới một tập tin âm thanh đi cùng với đối tượng này.og:description
- Một mô tả từ một đến hai đối tượng của bạn.og:determiner
- Từ xuất hiện trước tiêu đề của đối tượng này trong một câu. Một enum của (a, an, the, "", auto). Nếuauto
được chọn, người tiêu dùng dữ liệu của bạn nên chọn giữa "a" hoặc "an". Mặc định là "" (trống).og:locale
- Địa phương các thẻ này được đánh dấu. Định dạnglanguage_TERRITORY
. Mặc định làen_US
.og:locale:alternate
- Một mảng các ngôn ngữ địa phương khác có trong trang này.og:site_name
- Nếu đối tượng của bạn là một phần của một trang web lớn hơn, tên sẽ được hiển thị cho toàn bộ trang web. ví dụ, "IMDb".og:video
- URL tới tệp video bổ sung cho đối tượng này.
Ví dụ (đường dây phá vỡ chỉ cho mục đích hiển thị):
<meta property="og:audio" content="http://example.com/bond/theme.mp3" />
<meta property="og:description"
content="Sean Connery found fame and fortune as the
suave, sophisticated British agent, James Bond." />
<meta property="og:determiner" content="the" />
<meta property="og:locale" content="en_GB" />
<meta property="og:locale:alternate" content="fr_FR" />
<meta property="og:locale:alternate" content="es_ES" />
<meta property="og:site_name" content="IMDb" />
<meta property="og:video" content="http://example.com/bond/trailer.swf" />
Thuộc tính có cấu trúc
Một số thuộc tính có thể có thêm siêu dữ liệu đính kèm với chúng. Chúng được chỉ định theo cách giống như các siêu dữ liệu khác với
property
và content
, nhưng property
sẽ có thêm :
.
Các
og:image
bất động sản có một số đặc tính cấu trúc tùy chọn:og:image:url
- Tương tựog:image
.og:image:secure_url
- Một url thay thế để sử dụng nếu trang web yêu cầu HTTPS.og:image:type
- Một loại MIME cho hình ảnh này.og:image:width
- Số pixel rộng.og:image:height
- Số lượng pixel cao.og:image:alt
- Một mô tả về những gì trong hình ảnh (không phải là một chú thích). Nếu trang xác định một og: image cần chỉ địnhog:image:alt
.
Ví dụ hình ảnh đầy đủ:
<meta property="og:image" content="http://example.com/ogp.jpg" />
<meta property="og:image:secure_url" content="https://secure.example.com/ogp.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="300" />
<meta property="og:image:alt" content="A shiny red apple with a bite taken out" />
Các
og:video
thẻ có các thẻ giống hệt như og:image
. Đây là một ví dụ:<meta property="og:video" content="http://example.com/movie.swf" />
<meta property="og:video:secure_url" content="https://secure.example.com/movie.swf" />
<meta property="og:video:type" content="application/x-shockwave-flash" />
<meta property="og:video:width" content="400" />
<meta property="og:video:height" content="300" />
Các
og:audio
thẻ chỉ có 3 thuộc tính đầu tiên có sẵn (vì kích thước không có ý nghĩa cho âm thanh):<meta property="og:audio" content="http://example.com/sound.mp3" />
<meta property="og:audio:secure_url" content="https://secure.example.com/sound.mp3" />
<meta property="og:audio:type" content="audio/mpeg" />
Mảng
Nếu một thẻ có thể có nhiều giá trị, chỉ cần đặt nhiều phiên bản của cùng một
<meta>
thẻ trên trang của bạn. Thẻ đầu tiên (từ trên xuống dưới) được ưu tiên trong các xung đột.<meta property="og:image" content="http://example.com/rock.jpg" />
<meta property="og:image" content="http://example.com/rock2.jpg" />
Đặt thuộc tính được cấu trúc sau khi bạn khai báo thẻ gốc. Bất cứ khi nào một phần tử gốc được phân tích cú pháp, thì thuộc tính được cấu trúc này được coi là đã được thực hiện và một thuộc tính khác được bắt đầu.
Ví dụ:
<meta property="og:image" content="http://example.com/rock.jpg" />
<meta property="og:image:width" content="300" />
<meta property="og:image:height" content="300" />
<meta property="og:image" content="http://example.com/rock2.jpg" />
<meta property="og:image" content="http://example.com/rock3.jpg" />
<meta property="og:image:height" content="1000" />
có nghĩa là có 3 hình ảnh trên trang này, hình ảnh đầu tiên là
300x300
, giữa có kích thước không xác định, và cuối cùng là 1000
px tall.Các loại đối tượng
Để đối tượng của bạn được đại diện trong đồ thị, bạn cần chỉ định loại của nó. Điều này được thực hiện bằng cách sử dụng thuộc
og:type
tính:<meta property="og:type" content="website" />
Khi cộng đồng đồng ý về lược đồ cho một loại, nó sẽ được thêm vào danh sách các loại toàn cầu. Tất cả các đối tượng khác trong hệ thống kiểu là CURIEs của biểu mẫu
<head prefix="my_namespace: http://example.com/ns#">
<meta property="og:type" content="my_namespace:my_type" />
Các loại toàn cầu được nhóm thành các ngành dọc. Mỗi chiều dọc có không gian tên riêng. Các
og:type
giá trị cho không gian tên luôn luôn được đặt trước bằng không gian tên và sau đó là một khoảng thời gian. Điều này nhằm giảm sự nhầm lẫn với các kiểu tên người dùng được định nghĩa mà luôn có dấu hai chấm trong đó.Âm nhạc
- URI không gian tên:
http://ogp.me/ns/music#
og:type
giá trị:music:duration
- integer = = 1 - Độ dài của bài hát tính bằng giây.music:album
- music.album array - Album bài hát này là từ.music:album:disc
- integer = = 1 - Đĩa nào của bài hát này được bật.music:album:track
- integer = = 1 - Theo dõi ca khúc này.music:musician
- mảng thông số - Nhạc sĩ làm bài hát này.
music:song
- music.song - Bài hát trong album này.music:song:disc
- Số nguyên > = 1 - Tương tự nhưmusic:album:disc
trong ngược lại.music:song:track
- Số nguyên > = 1 - Tương tự nhưmusic:album:track
trong ngược lại.music:musician
- profile - Người tạo nhạc này.music:release_date
- datetime - Ngày phát hành album.
music:song
- Tương tự với những người trên music.albummusic:song:disc
music:song:track
music:creator
- profile - Người tạo danh sách phát này.
music:creator
- profile - Người tạo ra trạm này.
Video
- URI không gian tên:
http://ogp.me/ns/video#
og:type
giá trị:video:actor
- mảng thông số - Các diễn viên trong phim.video:actor:role
- string - vai trò của họ.video:director
- mảng thông số - Giám đốc bộ phim.video:writer
- mảng thông số - Nhà văn của bộ phim.video:duration
- integer = = 1 - Độ dài của phim trong vài giây.video:release_date
- datetime - Ngày phát hành bộ phim.video:tag
- chuỗi mảng - Gắn thẻ từ liên quan đến bộ phim này.
video:actor
- Tương tự như video.movievideo:actor:role
video:director
video:writer
video:duration
video:release_date
video:tag
video:series
- video.tv_show - Tập truyện này thuộc về tập nào.
Không có Dọc
Đây là những vật thể được xác định trên toàn cầu mà không phù hợp với chiều dọc nhưng vẫn được sử dụng rộng rãi và được đồng ý.
og:type
giá trị:article:published_time
- datetime - Khi bài viết được xuất bản lần đầu tiên.article:modified_time
- datetime - Khi bài viết được thay đổi lần cuối.article:expiration_time
- datetime - Khi bài viết hết hạn.article:author
- mảng thông số - Nhà văn của bài báo.article:section
- string - Tên phần cấp cao. Ví dụ công nghệarticle:tag
- chuỗi mảng - Gắn nhãn từ gắn với bài báo này.
book:author
- mảng thông số - Ai đã viết cuốn sách này.book:isbn
- chuỗi - ISBNbook:release_date
- datetime - Ngày phát hành cuốn sách.book:tag
- chuỗi mảng - Gắn thẻ từ liên kết với cuốn sách này.
profile:first_name
- string - Một cái tên thường được trao cho một cá nhân bởi cha mẹ hoặc tự chọn.profile:last_name
- string - Một cái tên được thừa hưởng từ gia đình hoặc hôn nhân và thông thường cá nhân đó được biết đến.profile:username
- string - Một chuỗi ngắn duy nhất để xác định chúng.profile:gender
- enum (nam, nữ) - Giới tính của họ.
Không có tài sản bổ sung nào khác ngoài những tài sản cơ bản. Bất kỳ trang web không được đánh dấu nào đều phải được coi là
og:type
trang web.Các loại
Các loại sau được sử dụng khi định nghĩa các thuộc tính trong giao thức Open Graph.
Kiểu | Sự miêu tả | Chữ |
---|---|---|
Boolean | Boolean đại diện cho một giá trị đúng hay sai | đúng, sai, 1, 0 |
Ngày giờ | Một DateTime đại diện cho một giá trị tạm thời bao gồm một ngày (năm, tháng, ngày) và một thành phần thời gian tùy chọn (giờ, phút) | ISO 8601 |
Enum | Một loại bao gồm các giá trị chuỗi cố định có giới hạn (liệt kê các thành viên). | Một giá trị chuỗi là một thành viên của bảng liệt kê |
Phao | Một điểm số dấu chấm động 64 bit | Tất cả các chữ cái phù hợp với các định dạng sau: 1.234 -1.234 1.2e3 -1.2e3 7E-10 |
Số nguyên | Số nguyên ký tự 32 bit. Trong nhiều ngôn ngữ các số nguyên trên 32 bit trở nên trôi nổi, vì vậy chúng tôi giới hạn giao thức Open Graph để dễ sử dụng đa ngôn ngữ. | Tất cả các chữ cái phù hợp với các định dạng sau: 1234 -123 |
Chuỗi | Một dãy ký tự Unicode | Tất cả các literal bao gồm các ký tự Unicode không có ký tự thoát |
URL | Một dãy các ký tự Unicode xác định một tài nguyên Internet. | Tất cả các URL hợp lệ sử dụng các giao thức http: // hoặc https: // |
Thảo luận và hỗ trợ
Bạn có thể thảo luận về Open Graph Protocol trong nhóm Facebook hoặc trên danh sách gửi thư của nhà phát triển . Nó hiện đang được Facebook tiêu thụ ( xem tài liệu của họ ), Google ( xem tài liệu của họ ), và mixi . Nó đang được xuất bản bởi IMDb, Microsoft, NHL, Posterous, Rotten Tomatoes, TIME, Yelp, và nhiều người khác.
Triển khai
Cộng đồng mã nguồn mở đã phát triển một số công cụ phân tích cú pháp và xuất bản. Hãy để nhóm Facebook biết nếu bạn đã xây dựng một cái gì đó tuyệt vời quá!
- Trình gỡ lỗi đối tượng Facebook - Trình phân tích cú pháp chính thức của Facebook và trình gỡ lỗi
- Công cụ Kiểm tra Đoạn trích của Công cụ của Google - Hỗ trợ Giao thức đồ hoạ Mở trong các ngành cụ thể và Công cụ Tìm kiếm.
- PHP Validator và Markup Generator - Trình xác nhận đầu vào OGP 2011 và trình tạo markup trong các đối tượng PHP5
- Khách hàng PHP - một thư viện nhỏ để truy cập dữ liệu Open Graph Protocol trong PHP
- OpenGraphNode trong PHP - một trình phân tích cú pháp đơn giản cho PHP
- PyOpenGraph - một thư viện được viết bằng Python để phân tích thông tin giao thức Open Graph từ các trang web
- OpenGraph Ruby - Ruby Gem phân tích các trang web và trích xuất các dấu hiệu giao thức Open Graph
- OpenGraph cho Java - lớp Java nhỏ được sử dụng để đại diện cho giao thức Open Graph
- RDF :: RDFa :: Parser - Trình phân tích cú pháp Perl RDFa hiểu được giao thức Open Graph
- WordPress plugin - WordPress plugin chính thức của Facebook, thêm siêu dữ liệu Open Graph vào các trang web được hỗ trợ bởi WordPress.
- Thay thế WordPress OGP plugin -
Không có nhận xét nào:
Đăng nhận xét