Facebook4J

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

修改Facebook的API版本,可以参考文档 查看.

通用配置

可以使用facebook4j.properties,ConfigurationBuilder或者是System Property为Facebook4J配置一些参数。

通过facebook4j.properties配置

创建名字为facebook4j.properties的文件,放在环境变量目录。

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-2.4.13.jar:yourApp.jar yourpackage.Main

通过环境变量配置

通过系统的环境变量配置,需要每一个变量都以facebook4j.开头

NIX系统: $ 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

在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是否输出日志,只有内置log工具时候生效false
jsonStoreEnabled如果设置为true,原始的JSON会存储到DataObjectFactoryfalse
mbeanEnabled如果设置为true,Mbean会被注册false
loggerFactoryLogger实现
支持的实现:
 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.appId配置OAuth App IDnull
oauth.appSecret配置 OAuth App Secretnull
oauth.accessToken配置 OAuth access tokennull
oauth.permissions配置 OAuth permissions
可选的配置
See https://developers.facebook.com/docs/reference/login/#permissions for the detail.
null
oauth.callbackURL配置 OAuth callback URLnull

安全

配置名称描述默认值
security.appSecretProofEnabled如果设置为true,请求API的时候会添加appsecret_proof参数false
security.appSecretProofCacheSizeappsecret_proof的缓存大小10

HTTP连接

配置名称描述默认值
http.connectionTimeoutHttp连接超时的毫秒数20000
http.readTimeout读取超时毫秒数120000
http.retryCount重试次数0
http.retryIntervalSecs重试时间间隔5
http.prettyDebug是否格式化输出false

HTTP代理

配置名称描述默认值
http.proxyHost代理地址null
http.proxyPort代理端口号null
http.proxyUser代理用户名null
http.proxyPassword代理密码null

地址

配置名称描述默认值
restBaseURLAPI地址https://graph.facebook.com/
videoBaseURL视频API的地址https://graph-video.facebook.com/
oauth.authorizationURL授权API地址https://www.facebook.com/dialog/oauth
oauth.accessTokenURL获取令牌地址https://graph.facebook.com/oauth/access_token
oauth.accessTokenInfoURL获取令牌信息地址https://graph.facebook.com/oauth/access_token_info
oauth.deviceTokenURL获取设备令牌地址http://graph.facebook.com/oauth/device

日志配置

Facebook4J默认配置的是标准输出,如果SLF4J, Commons-Logging, Log4J 在环境变量里面,会选择其中一个作为日志工具。可以通过-Dfacebook4j.loggerFactory=facebook4j.internal.logging.NullLoggerFactory禁用默认的日志输出。