fbf / laravel-mobile-facebook-app
适用于需要在移动端工作的Facebook页面Tab应用的Laravel过滤器。
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
- mobiledetect/mobiledetectlib: dev-master
- thomaswelton/laravel-facebook: dev-master
This package is not auto-updated.
Last update: 2024-09-23 15:38:36 UTC
README
适用于需要在移动端工作的Facebook页面Tab应用的Laravel过滤器。
概念
对于所有应用了过滤器的路由,它会检查用户是否不在移动端,也不是Facebook机器人,并且还没有被重定向到Facebook(防止在iFrame内部无限重定向),然后会将用户重定向到您Facebook页面上相应的Tab应用,即用户最初试图访问的页面。
然而,如果用户在移动端(或打开的是Facebook机器人获取开放图数据),则不进行重定向,直接显示他们所需的页面。
在社交网络、其他网站或应用中共享到您应用的链接应该是您的域名,而不是Facebook Tab应用URL。
例如。
http://myfacebookapp.com/path/to/page?query=string&shared=true
而不是
https://#/pages/mypage?sk_app=123456789&app_data=...
注意上述URL中的shared=true查询字符串参数 - 在社交网络或包含在其他网站上的所有指向您应用的链接中都需要此参数。在用户不是在移动设备上第二次或第三次等访问您的应用且已有有效会话的情况下,它是有必要的。它之所以必要,是因为我们设置了会话中的标志以记住用户已被重定向到Facebook,因此当应用再次在iFrame中加载时,用户不会被再次重定向,从而导致无限循环。然而,如果这不是用户第一次通过链接访问您的应用,并且他们已经有了会话,则此shared=true查询字符串参数将在检查他们是否已被重定向之前从会话中删除此标志,使他们再次被重定向。明白了吗?我不太明白。
安装
将以下内容添加到您的composer.json文件中
"fbf/laravel-mobile-facebook-app": "dev-master"
运行
composer update
将以下内容添加到app/config/app.php中
'Fbf\LaravelMobileFacebookApp\LaravelMobileFacebookAppServiceProvider'
从thomaswelton/laravel-facebook发布配置到app/config/packages(此库用于解码签名请求和获取您应用的Tab应用URL)
php artisan config:publish thomaswelton/laravel-facebook
将您的应用ID和密钥添加到发布的配置文件中
用法
注册并应用过滤器,将以下内容添加到app/routes.php中
Route::filter('facebook', 'LaravelMobileFacebookAppFilter');
Route::when('my/routes/*', 'facebook');