fc2ブログ

eclipse でPHP プロジェクト

eclipseで
PHPプロジェクトを作成するには
あらかじめ
PDTプラグインをインストールし

file > new > project > PHP >
PHP Project
で作成します

次に
自動作成された
プロジェクトを右クリックし
Build Path > Link Source
から
作成するディレクトリを選択します

すでに作成してあるなら
Browse
をクリックして
ディレクトリを、探し
finishをクリックします
スポンサーサイト



古い eclipse 情報の削除

eclip se のバージョンが古いと
Android ADT plugin に対応できないので
apt-get でeclipse をインストールしてみたのです
残念なことにこちらも古いため
ソースからインストールしました

このときに eclipse は
apt-get remove eclipse
で削除したのですが

設定ファイルが残っていたため
ソースからインストールしたほうを起動しようとしても
立ち上がるのは
古いほうになってしまいます

このため
ls コマンドで一度確認したところ
.eclipse というディレクトリがあったので

ll .eclipse/
で確認したら

org.eclipse.platform_3.5.0_155965261/
があり、これが原因で古いほうが起動していたようです

このため、
rm -rf ~/.eclipse
で削除したところ
無事、最新のほうが起動しました

yum や apt-get では
バージョンが古いことがあるので、最新版を使いたい場合
ソースからインストールする必要があります

テーマ : プログラミング
ジャンル : コンピュータ

友達のプロフィールアイコンのURL

友達のプロフィールアイコンのURLは
https://graph.facebook.com/ユーザID/picture/
になります

このURLには、クエリー文字列を追加できす

https://graph.facebook.com/ユーザID/picture?type=square
とすると
50x50ピクセルの画像に

最後の squareを
smallなら 横幅 50 ピクセル
normalなら 100 ピクセル
large なら 200 ピクセル
というように
画像のサイズ調整ができます

あと、
return_ssl_resource=1
とすると
HTTPS
で画像のURLへ転送できます

友達のプロフィールアイコンのURL

友達のプロフィールアイコンのURLは
https://graph.facebook.com/ユーザID/picture/
になります

このURLには、クエリー文字列を追加できす

https://graph.facebook.com/ユーザID/picture?type=square
とすると
50x50ピクセルの画像に

最後の squareを
smallなら 横幅 50 ピクセル
normalなら 100 ピクセル
large なら 200 ピクセル
というように
画像のサイズ調整ができます

あと、
return_ssl_resource=1
とすると
HTTPS
で画像のURLへ転送できます

Graph API で友達情報取得

JavaScript Test Console で確認できるスクリプトでは
Legacy REST API
ですが、これは順次廃止され
Graph API へ移行されつつあります

FB.api()
では
FB.api('/me/friends' , 'get' ,function (response){

})
というように
第一引数 /me/friends で
友達一覧を取得します

2番目の引数
get
でアクセス方法で get を指定

3番目の引数に
コールバック関数を指定します

これで、
コールバック関数の引数
response へ
友達一覧が格納されます

legacy rest API のように
取得する友達の数に
制限をつけるなら
2番目に
オプションに jsonp オプションを
指定すればok
です

制限は limit オプションで指定します

もし5人にしたいなら
FB.api('/me/friends','{limit: 5},'get',function(response){
});
というようにします

legacy API との大きな違いは
graph API の場合
reaponse.data に
ユーザー情報が jsonp ハッシュオブジェクトの
配列で格納されるということです

このため、
response.data.length
を利用し
友達の情報の数を取得してます

テーマ : プログラミング
ジャンル : コンピュータ

XFBML

Facebookには
Canvasアプリを作るときに使用できる独自タグがあり
FBMLと呼ばれていました

Face
Book
Markup
Language
の略です

ちなみに、もう廃止されて使えませんが
XMLタグと同様の名前空間指定方法の
XFBML
は使えます

Java Script Test Console で友達情報の取得

Java Script Test Console で
友達情報取得のサンプルを作成できます

https://developers.facebook.com/tools/
へアクセスし

Learning how to use the APIs
(APIの使いかたの学習)
の中にある

JavaScript Test Console
をクリックして
Examples
をクリック

fb.api
の中にある
friends
をクリックします

すると、 example ボタンのしたに
友達登録した人が表示されます

ちなみに、ログインしていないとでません

あと、example は例題とか 例 という意味です

テーマ : プログラミング
ジャンル : コンピュータ

おみくじアプリで画像表示する場合

10日でおぼえるFacebookアプリ開発入門教室

でおみくじアプリで画像をつけて投稿する時に
すこしわかりにくいかもしれなかったところをメモです

画像ファイルは、サンプルの中に含まれています

あと、もうひとつ書籍をみただけではつまづきそうなのが

source: 'http://XXXXXX'+ image_file[x],
のところです

これを XAMPP で行うなら
htdocs のところに images フォルダをコピーして
source: 'http://localhost/images/'+ image_file[x],

というように、フルパスで記述します

もし、公開サーバーやレンタルサーバーなら
images をアップロードして
パスを記述します

もし、hebereke.net というドメインなら
http://hebereke.net/images/
というようになります



テーマ : プログラミング
ジャンル : コンピュータ

Canvas型アプリの横幅

Canvas 型アプリの横幅は
デフォルトだと 760ピクセルの固定になっています

内部フレームの幅、高さを自分で決定したい場合
JavaScript test console のサンプルにある
camvas の custom-size のようにします

例えば
<script>
FB.Canvas.setAutoResize(false);
FB.Canvas.setSize({ height:200, width:760});
</script>

FB.Canvas.setAutoResize(false);
は自動的にサイズが変更されることを無効化します
false は大抵無効化という意味です

FB.Canvas.setSize({ height:200, width:760});
で内部フレームの大きさを指定しています
今回は 高さ(height) 200 ピクセル
幅(width) 760 ピクセル
となっています

テーマ : プログラミング
ジャンル : コンピュータ

Canvas型アプリ

おみくじアプリのように
Canvas 型アプリでは
アプリ自体はfacebook 上から見て内部フレーム
iframe で表示されるけど
HTMLの内容は完全なHTMLファイルではないので注意

逆に。完全にHTMLファイルを
Canvasとして表示することは不可能

<head>タグや
<head>タグ内に書かれた script タグなどは取り除かれ
bodyタグの中身だけの状態になるので注意

テーマ : プログラミング
ジャンル : コンピュータ

FB.init() のパラメータ

FB.init() では
JSONハッシュオブジェクトを引数として指定します

パラメータはいかのようになります

appid
アプリのID

cookie
クッキーサポートなら true

status
最新の状態を取得するなら true

xfbml
XFBMLタグをパースするなら true

oauth
OAuth2.0 を使ってログインするのに指定
これは true にしないとだめ

logging
ログの出力をするなら true

channelUrl
チャンネルファイルへのURlを指定
チャンネルファイルは
JavaScript SDK へのURLが指定された
<script>タグだけ記述する

authResponse
FB.getAuthResponse() で取得できる内容を
受けとるなら true

hideFlashCallback
Flash を使用する Canvas型アプリを開発するなら true

frictionlessRequests
アプリケーションリクエストを友達に送るとき
確認画面を出さないようにするオプションを表示するなら true

テーマ : プログラミング
ジャンル : コンピュータ

facebook 提供の JavaScript 関数を使う場合

Facebook で提供されている JavaScript を使う場合
<div id="fb-root"></div>
が必要です

これが、facebook の関数を呼び出すための
JavaScript を呼び出したとき必要になります

それと、ライブラリを読み込むため
<script type="text/javascript" src="http://connect
.facebook.net/en_US/all.js"></script>
も必要です

これで、Facebook Graph API を簡単に呼び出せます

テーマ : プログラミング
ジャンル : コンピュータ

facebook アプリと文字コード

10日でおぼえるFacebookアプリ開発入門教室
を購入し、
おみくじアプリ作成のところでつまづいたので、対処法を書いておきます

今回のつまづきは
chrome や IS04 のブラウザを使ったときの問題でした

firefox で行うぶんには問題ありません

まず、通常にすすめて問題はありませんが

最初に
index.html
を作成し
コードをすべて写したところ、
firefox では通常に動くのに chrome では文字化けするという状態でした

文字化け状態でクリックしても
おみくじの結果はでません

解決方法として
一番最初に

<meta charset="utf-8">

追記して、文字コードを指定します

これで、無事 chrome やスマホでも実験できます

ちなみに、chrome と IS04(android)
がダメだったのは、ブラウザの処理が同じためです

これで、無事にすすめます
ちなみに、この本の内容を実行するときには
レンタルサーバがなくても
XAMPP で代用できます



テーマ : プログラミング
ジャンル : コンピュータ

Eclipse へPHPプラグインインストール

Canvas型PHPアプリを開発するために

Eclipse へ PHP plugin をインストールします

今回は
32bit ubuntu 10.10 と
64bit ubuntu 11.10 なので
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-jee-indigo-SR2-linux-gtk-x86_64.tar.gz
からダウンロードしました


Screenshot-2012-04-24 21:01:53

eclipse を開いて
Help > Install New Software を選択します

次に work with の横に
Indigo-http://download.eclipse.org/releases/Indigo
を打ち込んで
Add を押します

ちなみに、リンク先は
http://download.eclipse
まで打っていると、候補ででてくるので、こちらから選んでもOKです

Screenshot-2012-04-24 21:12:20

次に、
Screenshot-Install

というように、一覧がでてくるので
Web XML and Java EE Development
の左の▶ をクリックます

Screenshot-Install -1

その中に、PHP Development Tools(PDT) SDK Future
がありますので、これを選択し
next をクリックします

そして、最後に
I agree to the conditions of these Terms of Use
(使用条件に同意します)
を選択して finish をおすとインストールされ、
再起動することで反映されます

また、別の調べ方として
youTube を使うという方法もあります

Youtube で
eclipse PDT install
と検索すると、英語の動画がほとんどですが
動画で学ぶこともできます

テーマ : プログラミング
ジャンル : コンピュータ

facebookアプリ開発を行う際の情報交換サイト

10日でおぼえるFacebookアプリ開発入門教室
を購入しました

この本に載っていましたが
facebookアプリ開発を行う際の情報交換サイトが紹介されています
ちなみに、日本語サイトです

ほとんど最新の情報は英語なので、英語になれるまでは、こちらを使うとよいかもしれません
https://www.facebook.com/groups/tyhuik6r

また、この書籍のサポートサイトもあります
https://www.facebook.com/pages/10daysfaceboooksupport/223843231046487




テーマ : プログラミング
ジャンル : コンピュータ

Graph API を呼び出す一般的形式

Graph API を呼び出すときのURLは
https://graph.facebook.com/ID
が基本形

IDは
ユーザID
イベントID
など
さまざまなのものがあり、IDのみでその情報の特定もできます

以下はPOSTメソッドで投稿または新規作成する際のURLになります

/プロフィールID/feed
ウォールに投稿
パラメータは
nmessage,picture,link, name,
caption,description, source

/オブジェクトID/comments
コメントの当校が可能な場合はコメントを投稿
パラメータは
message

/オブジェクトID/likes
いいね が可能な場合 いいね をする

/プロフィールID/notes
ノートを作成
パラメータは
message, subject

/プロフィールID/links
リンクの投稿
パラメータは
link, message, picture, name
caption,description

/プロフィールID/events
イベントを作成
パラメータは
name, start_time, end_time

/プロフィールID/albums
アルバムを作成
パラメータは
name,message

/プロフィールID/checkins
ページIDと位置を指定してチェックイン
パラメータは
coordibates, place, message, tags

/イベントID/attending
イベントに出席予定を返答

/イベントID/maybe
イベントに未定を返答

/イベントID/declined
イベントに不参加を返答

/アルバムID/phgotos
アルバムに写真をアップロード
パラメータは
message,. source multiparyt/from-data

テーマ : プログラミング
ジャンル : コンピュータ

Graph API Explorer でできること

Graph API Explorer を使うことで
アクセス権限設定のほかに
機能の呼び出しを URL とパラメータの入力でできるようになります

以下は、その一例です

GETでできること
https://graph.facebook.com/ユーザID
ユーザの情報

https://graph.facebook.com/FacebookページID
facebookページの情報

https://graph.facebook.com/グループID
グループ情報

https://graph.facebook.com/写真ID
写真情報

https://graph.facebook.com/イベントID
イベント情報

https://graph.facebook.com/ポストID
投稿内容の情報

https://graph.facebook.com/コメントID
コメント情報

続いてPOST関連

https://graph.facebook.com/ユーザID/feed
ポストの投稿

https://graph.facebook.com/ポストID/comments
コメント情報

そして DELETE関連
https://graph.facebook.com/ポストID
投稿の削除

https://graph.facebook.com/写真ID
写真の削除

https://graph.facebook.com/ポストID/likes
投稿のいいね取り消し

テーマ : プログラミング
ジャンル : コンピュータ

投稿時のエラーメッセージの例

以下はエラーメッセージの例です

Error walidating access token
Session has expired at unix time XXXXXX
The current unix time is XXXX
セッションの時間が制限を過ぎている

(#289)Requires extended permission:
publish_streem
拡張アクセス権限 publish_stream が必要

(#100)Required parameter "user" was not provided
指定されたパラメータ user が指定されていない

(#506)Duplicate status message
同じ内容が直前に投稿されている

Unsupported post request
入力されているURLでは指定された操作ができない


(#100)The parameter place is required
パラメータに place が必要

テーマ : プログラミング
ジャンル : コンピュータ

Graph API Exploer でウォール投稿

今回は Graph API Explorer でウォールへ投稿です

https://developers.facebook.com/tools/console/
へアクセスし
参考資料 > tools > SDKs & Tools をクリック
次に

Tools のところにある
Graph API Explorer
をクリック

次に、ニュースフィールドの内容を取得するため
Graph API Explorer のアクセス権限を変更します

アクセストークン取得 をクリック
でてきたダイアログから
Extended Permissions
をクリック

read_stream 
にチェックを入れ
Get Access Token をクリックすれば
次に表示されるダイアログで許可を求められるので
許可すると
アクセストークンのところに新しいアクセストークンが表示されます

次に
自分のウォールの内容を表示するため
URLの最後に
me/posts
を追記します

最初に
https://graph.facebook.com/
がかかれているので
https://graph.facebook.com/me/posts
とします

最後に送信をおすと
自分の投稿内容が
JSON形式で表示されます

とはいっても、過去に自分が投稿したものが表示され、
実際にはまだウォールには投稿されません


今度はウォールに投稿するために
Grap API Explorer の権限を変更します
もう一度、
アクセストークンを取得をクリックし
Extended Permissions をクリックし
publish_stream 
にチェックを入れます

最後に
Get Access Token
をクリックすると、またしてもダイアログがでてくるので
許可する をクリックします

次にURLを
https://graph.facebook.com/ユーザID/feed
として

となりの GET を POST へ変更します

次に、フィールドの追加をクリックし
name
のところへ
message と入力し

value には
ウォールに投稿する文章を入力します

最後に送信をおすと、実際にウォールに文章が投稿されます

ちなみに、コンソール画面には
戻り値のポストIDが表示されます

テーマ : プログラミング
ジャンル : コンピュータ

ハッシュについて

ハッシュとは PHP Perl などでいう
連想配列のことです

key-value の組み合わせのリストになっていて
key を指定することで
value の取得、設定が可能になります

ちなみに、セキュリティのほうにあるハッシュ値とはちがう意味でした
こちらは暗号化のほうです

テーマ : プログラミング
ジャンル : コンピュータ

java script Test Console でウォール投稿

javaScript Test Console でウォール投稿してみます

https://developers.facebook.com/tools/console/
へアクセスし

参考資料 > Tools > JavaScript Test Console
とクリックしていきます

次に example >fb.ui の中にある feed をクリックすると
ダイアログがでてくるので
何かメッセージを書き込み、シェアをおすと
実際にウォールに投稿されます

ちなみに、アカウント取得してログインしていないと書き込まれません

テーマ : プログラミング
ジャンル : コンピュータ

OAUthとシングルサインオンの違い

シングルサインオンとは
Lightweight
Directory
Access
Protocol

通称LDAPというディレクトリサーバーに
IDとパスワードを集約することによるID管理の一元化のことです

アルタ端末かrなおアクセスに
一度どいっこかのLDAPサーバーで認証したあとは
同じLDAP認証サービスを利用するサーバーへのアクセスは
認証をスキップできるというものです

この場合の認証は
・認証 authentication
・認可 authorization
の両方の意味になります

そして webサービスでのID統合されたものがOpenID です

OpenID はOpenIDプロバイダと呼ばれるサーバーに
IDを保持しておくことで
そのIDによるログインでサービスを受けることができるようにする規格です

テーマ : プログラミング
ジャンル : コンピュータ

Facebookのユーザ認証OAuth

2012 1月以降 Facebook では
ユーザ認証とアプリのアクセス許可に
OAuth2.0を使用

詳しくは
Facebook Develoers OAuth 2.0 and HTTPS Migration
を参考にします
URLは
https://developers.facebook.com/docs/authentication/

OAuth は
認証方法の1つで
Facebook 以外では mixi twitter などでも使われます

特徴としては
サードパーティサービスはパスワードを扱わない
サードパーティサービスに対して利用可能な機能を持たせることができる

というものです

他にいままで使われたものもありますが
セキュリティの問題からあまり使わないです

まずBasic 認証
平文でパスワードが流れます

Form認証
SQLインジェクション
XSSの被害にあいやすい

ほかにもありますが、なるべく使わないようにしています

テーマ : プログラミング
ジャンル : コンピュータ

JavaScript Test Console のサンプルスクリプト

javaScript Test Console には37種類のサンプルがあります

大きく分けると

・認証
アカウント情報の表示、パーミッションをつかったログイン

・Canvas
Canvas型アプリの場合の Canvasの設定

・API
Facebook Graph API を利用した情報の取得

・UI
Facebook Dialog を利用したポップアップ画面の表示

・XFBML
XFBMLを使ったソーシャルプラグインの表示
例として いいね ボタンとか

あと、スクリプトのログの出力は
サンプルソースの右にでます

テーマ : プログラミング
ジャンル : コンピュータ

javascript test console のサンプル その2

引き続き、サンプルの作成の紹介です

tools のところにある
java script test console をクリックして
再び
Example をクリックし
auth の
account-info (アカウント情報)
をクリックすると、
自分のアカウント情報を表示するスクリプトが表示されます

ちなみに、ログイン状態ならスクリプトが実行され
自分の写真と名前が表示されます

テーマ : プログラミング
ジャンル : コンピュータ

javascript test console のサンプルを動かす

Javascript test console を使うには

https://developers.facebook.com/tools/console/
へアクセスし
参考資料をクリック

次に Tools をクリックし
Learning how to use the APIs
の下にある
JavaScript Test Console
をクリック

Examples つまり例題 をクリックして
auth のところにある
login-and-logout
をクリックすれば

ログインとログアウトするサンプルソースコードが表示されます

テーマ : プログラミング
ジャンル : コンピュータ

ubuntu の lha 解凍時のエラー対処

10日でおぼえるFacebookアプリ開発入門教室
を購入し

サンプルファイルを
http://www.shoeisha.com/book/hp/10days/down/index.html#9784798125138
からダウンロードして
解凍したのですが、開発環境が Linux (ubuntu 10.10)
のため、

lha -e Facebook10.lzh
を実行すると
ディレクトリのパスがうまく解凍されたときに処理されず、妙なファイル名となっています

このままでもできなくはないのですが
対処しておきたいので検索

lha ubuntu 解凍
で検索すると意外に簡単にみつかりました

今回の参考サイトは
lzhを解凍するとフォルダが消える場合がある
です

リンクがはられていたので、
IKOINOBA APT/YUM repository
へリンクして、みたのですが、最近、10.10はサポート終了したためか
ーが引かれていたので
代わりに ubuntu11.10 で行いました


sudo add-apt-repository ppa:ikoinoba/ppa
でレポジトリ追加して

sudo apt-get update
でパッケージソースアップデート

sudo apt-get upgrade
でパッケージをアップデート

これで、
lha -e Facebook10.lzh
を実行しても正常に解凍できました

ちなみに、これがわからなかったときには
一度
VMware Player で windows で解凍して
Filezilla でSFTP転送してました

テーマ : Linux
ジャンル : コンピュータ

Facebook Android SDK ダウンロード

facebook Android ADK をダウンロードしてみました

まず
https://developers.facebook.com/docs/reference/androidsdk/
へアクセス

これがドキュメントなので、困ったらこれを確認(英語だけど)

次に
https://github.com/facebook/facebook-android-sdk
へアクセスし
facebook android sdk をダウンロード

zipのアイコンをクリックしダウンロードします

テーマ : プログラミング
ジャンル : コンピュータ

Facebook PHP SDK の関数

Facebook PHP SDK は
web server を利用したfacebook アプリ開発に必要になるSDKです

具体的には
Facebook Graph API などを使うときに必要です

PHP SDk に含まれるのは

CRTファイル
SSLのサーバ正銘ファイルで
Graph API に https でアクセスするのに使う

PHP ファイル
facebook へアクセスするクラス

という中身になっています


以下は、関数とその内容です

まずは
Facebookクラスから

api
API呼び出し

getAccessToken
アクセストークン取得

getApiSerect
秘密コード取得

getApiId
APP_IDを取得

getLoginStatusUrl
ログイン状態に合わせたリダイレクト先URLを知る

getLoginUrl
ログインのためのURL取得

getLogoutUrl
ログアウトのためのURL取得

getSignedRequest
Signed Request パラメータの内容取得

getUser
ログインしているユーザのIDを取得

setAccessToken
アクセストークンの設定

set ApiSecret
秘密コードの設定

setAppId
APP_IDの設定

setFileUploadSupport
ファイルアップロード機能の設定

useFileUploadSupport
ファイルアップロード機能の使用を確認



続いて FRacebookApiExcerption クラス
getResult
APIの呼び出しで
例外が発生したとき例外内容を取得

fetType
例外の型を取得

基本的には java とかに近いかも
exception は大抵は例外処理

get と set はほとんどセットだと思うし

テーマ : プログラミング
ジャンル : コンピュータ

curl について

curl についてちょっとメモです

curl とは
FILE
LDAP
POP
SMTP
SCP
などの様々なサーバーとの
データ転送プロトコルに汎用的にアクセスするよう
設計されたURL転送ライブラリのプロジェクトになります

http://
などのURLフォーマットにしたがって記述するデータポイントに対して
処理を行います

ライブラリ自体は
libcurl と呼ばれ
Linux には curl コマンドがあります

なぜ curl かというと
Facebook PHP SDK で
HTTPS アクセスするのに libcurl が必要なためです

ちなみに、facebook のSDKが標準提供されていない Ruby の場合
Net::HTTP

Net::HTTPS

Physon なら
urllib2 などのライブラリやモジュールを使って
Facebook Graph API へアクセスします

テーマ : Linux
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック