Current section
Files
Jump to
Current section
Files
lib/seo/facebook.ex
defmodule SEO.Facebook do
@moduledoc """
Facebook originally developed the OpenGraph standard, so much of social-sharing techniques
are contained in `SEO.OpenGraph`, however there remains one Facebook-specific attribute: the `:app_id`.
Resources:
- https://developers.facebook.com/docs/sharing/webmaster
"""
defstruct [:app_id]
@type t :: %__MODULE__{
app_id: String.t()
}
@doc """
In order to use Facebook Insights you must add the `:app_id` to your page. Insights lets you view analytics for traffic
to your site from Facebook. Find the app ID in your Facebook App Dashboard.
"""
def build(attrs, default \\ nil)
def build(attrs, default) do
SEO.Utils.merge_defaults(__MODULE__, attrs, default)
end
use Phoenix.Component
attr(:item, __MODULE__, default: nil)
attr(:config, :any, default: nil)
def meta(assigns) do
assigns = assign(assigns, :item, build(assigns[:item], assigns[:config]))
~H"""
<%= if @item do %>
<%= if @item.app_id do %>
<meta name="fb:app_id" content={@item.app_id} />
<% end %>
<% end %>
"""
end
end
defimpl SEO.Facebook.Build, for: Any do
def build(item), do: SEO.Facebook.build(item)
end