Facebook4J

- An 'Unofficial' library for the Facebook API in Java -

Facebook の API バージョンの指定方法は こちら

一般設定

Facebook4J はいくつもの設定可能なプロパティが存在します。プロパティは facebook4j.properties ファイルから、ConfigurationBuilderクラスから、またはシステムプロパティから設定できます。

facebook4j.properties から

標準的なプロパティファイルを “facebook4j.properties” という名前で保存します。 “facebook4j.properties” はカレントディレクトリ、またはクラスパスのルート(WEB-INF/classes等)に配置してください。

debug=true
oauth.appId=****************
oauth.appSecret=********************************
oauth.accessToken=********************************
oauth.permissions=email,publish_stream,...

ConfigurationBuilder から

ConfigurationBuilder クラスを使うと以下のようにプログラムから設定をすることができます。

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
  .setOAuthAppId("*********************")
  .setOAuthAppSecret("******************************************")
  .setOAuthAccessToken("**************************************************")
  .setOAuthPermissions("email,publish_stream,...");
FacebookFactory ff = new FacebookFactory(cb.build());
Facebook facebook = ff.getInstance();

システムプロパティ から

システムプロパティから設定をすることもできます。システムプロパティから設定する場合はプロパティ名の先頭に “facebook4j.” をつける必要があることに注意してください。

$ java -Dfacebook4j.debug=true
    -Dfacebook4j.oauth.appId=*********************
    -Dfacebook4j.oauth.appSecret=******************************************
    -Dfacebook4j.oauth.accessToken=**************************************************
    -Dfacebook4j.oauth.permissions=email,publish_stream,...
    -cp facebook4j-core-1.1.0.jar:yourApp.jar yourpackage.Main

環境変数から

OSの環境変数から設定をすることもできます。環境変数から設定する場合はプロパティ名の先頭に “facebook4j.” をつける必要があることに注意してください。

$ export facebook4j.debug=true
$ export facebook4j.oauth.appId=*********************
$ export facebook4j.oauth.appSecret=******************************************
$ export facebook4j.oauth.accessToken=**************************************************
$ export facebook4j.oauth.permissions=email,publish_stream,...
$ java -cp facebook4j-core-2.4.13.jar:yourApp.jar yourpackage.Main

On Heroku:

$ heroku config:add facebook4j.oauth.appId=*********************
$ heroku config:add facebook4j.oauth.appSecret=******************************************
$ heroku config:add facebook4j.oauth.accessToken=**************************************************
$ heroku config:add facebook4j.oauth.permissions=email,publish_stream,...
$ git push heroku master

プロパティ一覧

一般

プロパティ名説明デフォルト値
debugデバッグ有効化フラグ。内蔵 Logger 使用時のみ有効。false
jsonStoreEnabledDataObjectFactoryにJSONデータを保存するかどうかのフラグ。false
mbeanEnabledMBeanを有効化するかどうかのフラグ。false
loggerFactoryログ出力実装
サポートされる実装:
 facebook4j.internal.logging.SLF4JLoggerFactory
 facebook4j.internal.logging.CommonsLoggingLoggerFactory
 facebook4j.internal.logging.Log4JLoggerFactory
 facebook4j.internal.logging.JULLoggerFactory
 facebook4j.internal.logging.NullLoggerFactory
 facebook4j.internal.logging.StdNullLoggerFactory
null

OAuth

プロパティ名説明デフォルト値
oauth.appIdデフォルトの App IDnull
oauth.appSecretデフォルトの App Secretnull
oauth.accessTokenデフォルトの OAuth アクセストークンnull
oauth.permissionsデフォルトの OAuth パーミッション
パーミッション名をカンマ区切りで指定
パーミッション名は Facebook の Webサイトで確認してください。
https://developers.facebook.com/docs/reference/login/#permissions
null
oauth.callbackURLデフォルトの OAuth コールバック URLnull

セキュリティ

Property nameDescriptionDefault
value
security.appSecretProofEnabledAPI コール毎に自動的に 'appsecret_proof' パラメータを付加するかどうかのフラグ。false
security.appSecretProofCacheSize'appsecret_proof' のキャッシュサイズ。10

HTTP接続

プロパティ名説明デフォルト値
http.connectionTimeoutHTTP接続タイムアウト(ミリ秒)20000
http.readTimeoutHTTPリードタイムアウト(ミリ秒)120000
http.retryCountHTTPリトライ回数0
http.retryIntervalSecsHTTPリトライ間隔(秒)5
http.prettyDebugデバッグ出力を整形するかどうかfalse

HTTPプロキシサーバ

プロパティ名説明デフォルト値
http.proxyHostHTTPプロキシサーバホスト名null
http.proxyPortHTTPプロキシサーバポート番号null
http.proxyUserHTTPプロキシサーバユーザ名null
http.proxyPasswordHTTPプロキシサーバパスワードnull

ベースURL

プロパティ名説明デフォルト値
restBaseURLAPI のベース URLhttps://graph.facebook.com/
videoBaseURLVideo API のベース URLhttps://graph-video.facebook.com/
oauth.authorizationURLOAuth 認可の URLhttps://www.facebook.com/dialog/oauth
oauth.accessTokenURLOAuth アクセストークン取得の URLhttps://graph.facebook.com/oauth/access_token
oauth.accessTokenInfoURLOAuth アクセストークン情報取得の URLhttps://graph.facebook.com/oauth/access_token_info
oauth.deviceTokenURLOAuth デバイスアクセストークン取得の URLhttp://graph.facebook.com/oauth/device

ログ設定

デフォルトで Facebook4J は標準出力にログを記録します。SLF4J, Commons-Logging, Log4J のいずれかがクラスパスに存在する場合はそのログライブラリを使ってメッセージが出力されます。-Dfacebook4j.loggerFactory=facebook4j.internal.logging.NullLoggerFactory をシステムプロパティに指定することでログ出力を止めることも出来ます。