logo
home > web > FaceBook

FaceBookの最近のブログ記事

どうやら2月6日のアップデートでアプリ認証用のアクセスURLに渡すパラメータ名が変更になった模様。

認証ページ遷移後に下記のエラーが出ていたら待っていても
エラーのままです。
fb_error.png


○変更パラメータ
app_id → client_id
next → redirect_uri


下記の感じでFacebook::Graphを使用してURL生成してたら
生成後の上記パラメータを置換してあげましょう。。

my $fg = Facebook::Graph->new(
        postback => Postback,
        app_id   => APP_ID,
        secret   => SECRET
    );

    my $get_code_url = $fg->authorize->extend_permissions(PERMISSIONS)->uri_as_string;




http://developers.facebook.com/docs/reference/plugins/like/
上記のいいねボタン(Like button)生成フォームで設置スクリプトを作成。

サイトにfacebookいいねを設置できたと思ったら、リロードすると0になってしまって
なぜかカウントが蓄積されませんでした。

そんなときはデバッガーを使いましょう。

facebook debugger
http://developers.facebook.com/tools/debug

何かしらえらーが出るはずです。

今回はapp_idとadminsが無いよ!とおこられました。

ということでfacebookアプリを作成してapp_idを取得しましょう。




サイトにいいねボタンを設置したはいいものの、ボタンを押しても
自分のウォールにしか情報が流れていない。そんな時は下記のMETAタグを追加しましょう。

<meta property="og:type"content="company" />
<meta property="og:title" content="marooon" />
<meta property="og:image" content="http://marooon.com/static/images/logo.gif />
<meta property="og:url" content="http://marooon.com" />
<meta property="og:site_name" content="marooon" />
<meta property="fb:admins" content="0000000000000000" />

adminsはuserのidを入れるらしい。

typeは下記のカテゴリごとの項目が指定できる見たい。
○Activities
activity
sport

○Businesses
bar
company
cafe
hotel
restaurant

○Groups
cause
sports_league
sports_team

○Organizations
band
government
non_profit
school
university

○People
actor
athlete
author
director
musician
politician
public_figure

○Places
city
country
landmark
state_province

○Products and Entertainment
album
book
drink
food
game
product
song
movie
tv_show


んでいいねしてみよう。できたかな?



Facebookページにperlで自動投稿してみたのでその時のメモ。
まずはfacebookとのやり取りをひも解いてみた。これをPHPやPerlにすればよし
いくつかはまったところがあったのでメモ。


1.Facebookアプリの登録
まずはアプリ登録。

Developers.png

右の『Set Up New App』から新規登録しましょう。

適当に埋めてサイトURLとドメインだけ今回アクセスするサーバのものにしておきましょう。
あとで指定したcallbackURLが同じドメインでないと怒られます。

2.png
アプリIDとアプリの秘訣(?)を控えましょう。


2.OAuth認証でcode取得
次にOAuth認証するため下記のURLに情報を一緒に投げてみましょう。
こんな感じでアクセス。

https://graph.facebook.com/oauth/authorize?client_id=アプリID&redirect_uri=登録したドメインの適当なコールバックURL&scope=offline_access,publish_stream,user_status,read_stream,status_update,manage_pages

scopeは下記のアプリ承認時に出る権限です。
manage_pagesがユーザの管理してるページに自由にアクセスできる権限かな。
これがあればユーザに紐づいたFacebookページにアクセスできる。

re.png


コールバックURL?code=1234567891234567

こんな感じでコールバックURLにcodeが帰ってくるので
codeをメモ。


3.ユーザのアクセストークンを取得
次はcodeを使ってユーザのアクセストークンを取得します。
このトークンを使えば、ユーザに紐づいた情報が取得できます。
下記にアクセス。

https://graph.facebook.com/oauth/access_token?
     client_id=アプリID&redirect_uri=コールバックURL&
     client_secret=アプリの秘訣&code=さっきのコード

そうすると
コールバックURL?access_token=ユーザアクセストークン

とかえってくるのでメモ。

4.Facebookページのアクセストークンを取得
最後にユーザのアクセストークンを使って該当するFacebookページのアクセストークンを取得します。
これがあれば外部からFacebookページへの投稿が可能に!

https://graph.facebook.com/me/accounts?access_token=ユーザアクセストークン

これにアクセスすると下記のようにJSON形式でユーザに紐づいたFacebookページやらアプリやらの
idとaccess_tokenがでます。

json.png
Categoryが『Community』となっているものがFacebookページなので、そのaccess_tokenをメモ
投稿したいFacebookページのURLの数字を確認しておきましょう。FacebookページのURLに含まれてる数字がIDなので。


5.投稿
あとは下記のようにメモったFacebookページのaccess_tokenをメッセージと一緒にポストしてみよう

<form action="https://graph.facebook.com/FacebookページのID/feed" method="post">
    <input type="hidden" name="access_token" value="アクセストークン" />
    <input type="hidden" name="picture" value="http://marooon.com/img/logo.gif'" />
    <input type="text" name="message" value="hogehoge" />
</form>
こんなかんじ。

試しにポストしてみたらちゃんと投稿されました。
画像を投稿したい場合はpictureで画像のURLを投げてやればOK

あとはこの流れをプログラムに!



JavaScript Journal | JavaScript総合情報サイト

このアーカイブについて

このページには、過去に書かれたブログ記事のうちFaceBookカテゴリに属しているものが含まれています。

前のカテゴリはcentosです。

次のカテゴリはMacBookAirです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。