facebook アプリに友達を招待するには

作成したイベントについて
Graph API を使えば友達も誘える
FB,.api() のURLに
‘/イベントのID/invited’
を指定して
友達のユーザIDをカンマ区切りで指定して
POSTメソッドで呼び出せば
友達の招待を行える
構文は
FB.api(‘/イベントのID/invited/友達のユーザID’,’post’,function(response){
})

facebook のイベント作成時に指定できるパラメータ

owner
id,name のハッシュ
内容は主催者
name
文字列
内容はイベントの名前
description
文字列
内容はイベントの説明文
start_time
ISO8601形式またはUNIX時間
内容はイベント開始時間
end_time
ISO 8601形式 または UNIX時間
内容はイベント終了時間
location
文字列
内容はイベント開催場所
venue
id,street,city,state,zip,country,latitude,logitude
のうち1つを含むハッシュ
内容はイベントの開催場所
privacy
OPEN, CLOSED, SECRET のうち
いずれかの文字列
内容は
公開、非公開、秘密のイベントの種別
他には
id
updated_time
イベントのウォールと参加者の情報などにアクセスすることもできます

Facebook イベント作成機能

Facebook にはイベントを作成する機能があります
イベントの日時、場所を指定して作成し
友達を誘う
イベントの情報をしると参加申請することができます
参加の有無はボタンで意思表示することができ累計も自動でできます
あるイベントの後で友達にあると
イベントで友達になったというようにFaceBookで判断され
アクティビティに
イベントで友達になりました
というような内容が表示されます
ということでイベント作成の解説です
イベントの作成は
Graph API で行えます
作成するには create_event 拡張権限が必要
ちなみに、公開でないイベント(非公開招待イベント)

user_event権限
友達のイベントについて情報を取得するには
friend_event権限
イベントに参加するかどうかを返答するには
rsvp_event権限
が必要になります

Registration プラグインのフィールドタイプとパラメータ

パラメータ name のフィールドタイプのメモです
name
ユーザ名
email
メール・アドレス
location
居住地
gender
性別
birthday
誕生日
password
パスワード
captcha
機械じゃないことを証明するための入力機構
(崩れた字を入力する)
--------------------------------------------------—-
type パラメータ の内容
入力のタイプ
(text,checkbox,slect,typeahead,hidden)
---------------------------------------------—
description パラメータの内容
入力欄に表示する項目名
----------------------------------------—-
view パラメータの内容
prefiled
入力欄をうめている状態で表示
hot_preifiled
入力欄をうめないで表示
----------------------------------------–
options パラメータの内容
タイプが select のときの選択項目を
ハッシュ形式
{“値”:”表示名”,…}
で指定
-----------------------------------—
categories パラメータの内容
タイプが typeahead のときの入力候補を配列
[‘a’,’b’,…..]
で指定
-----------------------------------
default パラメータの内容
タイプが select または checkbox のときに指定
値に checked が含まれているとき、checkbox はチェックさせる
------------------------------—
no_submit パラメータの内容
入力欄は作成するが、送信項目には含めない

Registration ソーシャルプラグイン

Registration ソーシャルプラグインは
Facebook にアカウントを所持している場合
サービス提供者が要求する入力項目がアカウントに登録されていれば
その内容をあらかじめ入力されている状態にするというものです
これを使えば、利用者は
いちいち全部の項目を入力しなくて済みます
例えば、会員情報で必須の登録で
住所
氏名
年齢
メール・アドレス
など、必須入力となっている項目を facebook アカウントに登録してある
情報から取得して、自動入力状態にできるというものです
たしかに、登録するのに必要な情報をすべて入力するのは
面倒なので、便利ですが、どの程度要求するのかに注意する必要がありそうです
ちなみに、これについては
https://developers.facebook.com/docs/plugins/registration/
にサンプルがあります
実際に facebook にログインした状態でアクセスすると
アカウントの情報が表示されます
Registration プラグインは
facebook のログインボタンの設置のように
タグで作成します
使うタグは
<fb:registration>
というXFBMLタグになります
入力項目は
fields 属性に設定し
redirect-uri 属性に入力項目を送信するURLを指定します
また、入力された情報は
java script で確認できます
このとき onvalidate属性により実現されます
入力方法は2つあり
カンマ区切りでフィード名を指定する
もしくは
JSON形式で指定します
カンマ区切りなら
facebook が提供する項目を指定し
JSON形式ならパラメータを使用して入力フォームを構成します
カスタマイズしたいならJSON形式を使うことになります
開発者用のドキュメントも用意されています
(英語です)
https://developers.facebook.com/docs/plugins/registration/advanced/

strtoupper() を調べてみた
参考URLは
http://phpjp.com/strtoupper.htm
アルファベットをすべて大文字に変換というもの
= PHPスクリプト動作例
関数例
$str = ‘PHP Hypertext Preprocessor’;
echo strtoupper($str);
PHP HYPERTEXT PREPROCESSOR
つまり、小文字のものだけを大文字にしている関数
あと
HMAC-SHA256
というものがあるけど
これは
Amazon Product Advertising API を使用するには、HMAC-SHA256 方式の署名が必要
ということなので、
覚えておく必要がありそう
参考サイト
PHP4 で HMAC-SHA256 などの hash_hmac() 関数を使えるようにする
そして hash_hmac()
hash_hmac ― HMAC 方式を使用してハッシュ値を生成する
これは電子署名とかに使いそう
説明
string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )
パラメータ
algo
選択したアルゴリズムの名前 (すなわち “md5″、”sha256″、”haval160,4” など…)。 サポートするアルゴリズムの一覧は hash_algos() を参照ください。
data
ハッシュするメッセージ。
key
HMAC 方式でのメッセージダイジェストを生成するために使用する 共有の秘密鍵。
raw_output
TRUE を設定すると、生のバイナリデータを出力します。 FALSE の場合は小文字の 16 進数値となります。
つまり
hash_hmac(‘sha256’, $payload, $secret,$raw= true);
なら、
アルゴリズム sha256
ハッシュするメッセージが $payload
鍵は $secretつまりfacebook アプリの秘密鍵
raw_output が true なのでなまバイナリデータということになる
こちらは
hash_hmac
を参考にしました

phpMyAdmin で sql ファイルの実行

10日でおぼえるFacebookアプリ開発入門教室 (10日でおぼえるシリーズ)
を参考に、facebook アプリを勉強しています
今回は、phpMyAdmin で sql ファイルを実行する方法についてです
まず
http://localhost/phpmyadmin
でアクセスしてログインします
次に、
localhost > インポート >ファイルを選択 をクリックして
実行したい sql ファイルを選びます
今回使ったのは、サンプルにあった
17-list2.txt
というテキストファイルを
cp 17-list2.txt reserve.sql
として
sql ファイルにしました
ちなみに、正式なフルパスは
圧縮ファイルを解凍して
facebook10/lesson17/before/cp 17-list2.txt
になります
sql ファイルは拡張子が
.sql となります
ちなみに、PHP なら .php
java script なら .js
java だと .java
となります
最後に 実行 をクリックするとSQLが実行されます
Screenshot-2012-06-08 20:52:38

ログイン状態の変更をイベントとして受けとる

ログインプラグインを利用して
ログインをした場合
ログインの受胎が変化するのみでリロードはされない
このため、情報の更新を行うには
そのタイミングをしらないとダメ
タイミングをしるには
facebook が提供しているイベントを使う
提供されているイベントのうち
認証状態の変化を検出できるのは
auth.authResponseChange
これを講読するようにするとタイミングをしることができる
ちなみに、講読は
java とか java script では
イベントリスナー登録ともいいます
あと、講読は英語で subscribe といいます
ログイン状態の変化でリロードするなら
FB.Event.subscribe(‘auth.authResponseChange’,function(response){
window.open(window.location.href,”_self”);
));

str_replace関数 と INNER JOIN について

str_replace関数は
検索文字列に一致したすべての文字列を置換し、置き換えた後の文字列を返す関数
参考サイトは
str_replace-文字列関数
$str = “PHP入門”;
$str = str_replace(“PHP”, “PHP5”, $str);
echo $str;
なら、置き換えしたあとには
PHP 入門

PHP5入門になる
str_replace (“検索文字列”, “置換え文字列”, “対象文字列”);
ということなので、そういうこと
で、応用
str_replace(“article_”, “”, $aid);
なら、
$aid のところを
article を “” つまり空にするということになる
次に
INNER JOIN について
参考サイトは
INNER JOINを使って表を結合する
構文は
SELECT 列名1,列名2,~列名n ← どの列を表示させるか
FROM 表名1 INNER JOIN表名2 ON 表名1.フィールド名 = 表名2.フィールド名
WHERE 抽出条件
SELECT *
FROM 売上表 INNER JOIN 顧客表 ON 売上表.顧客CD=顧客表.顧客CD
という例がのっていた
これは
売上表 INNER JOIN 顧客表
で売上表を 顧客表とくっつける
そして
ON 売上表.顧客CD=顧客表.顧客CD
なので
そのうち
売上表の 顧客CD
のところと
顧客表 の顧客CD
をくっつけるということ
SQLはまだまだ覚えることがおおそう

preg_grep() について

preg_grep() が少しわからなかったので、
検索
grep とかいてあるので、linux の grep コマンドみたいに
検索するものを想像したけど、ほぼあってるみたいです
パターンにマッチする値のみを取り出して新しい配列を作るようです
今回の参考サイトは
http://www.yc.tcu.ac.jp/~yamada/doc/php/0411.html
このサンプルをみたところ
$arr_str = array ( “123”,”456xyz”, “abc”, “deFG”,”abc\n”);
 $arr_res = preg_grep( “/^[a-z]+$/i”, $arr_str );
この場合、
/^[a-z]
は最初にアルファベット a ~z で始まるもの
ということなので、
“abc”, “deFG”,”abc
が該当になります
つまり、preg_grep () は
preg_grep(検索条件,対象の配列)
というようになるようです