nixilla / facebook-api-consumer
在命名空间中,易于测试的PHP Facebook API消费者
0.2
2013-04-05 12:20 UTC
Requires
- php: >=5.3.2
- kriswallsmith/buzz: ~0.7
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-19 00:19:03 UTC
README
命名空间中,易于测试的PHP Facebook Graph API消费者,持续集成Travis CI。
安装
最简单的方法 - 通过 packagist 和 composer
{ "require": { "nixilla/facebook-api-consumer": "~0.1" } }
它做什么?
这个库是Facebook Graph API的包装器,并且它提供了一些在Facebook集成应用中常用的一些工具方法。
它是如何做的?
这个库提供了一个Facebook\Consumer类,它是基于kriswallsmith/buzz库的高层次包装器。您只需指定您感兴趣的端点,它就会为您获取信息。
例如
<?php require_once './vendor/autoload.php'; $client = new Buzz\Browser(new Buzz\Client\Curl()); $consumer = new Facebook\Consumer($client); $consumer->setAccessToken('ACCESS_TOKEN_STRING'); $result = $consumer->call('/me/feed');
默认情况下,Facebook\Consumer将Facebook API的JSON输出转换为PHP数组。它是通过Facebook\DefaultConverter类来完成的。
然而,您可以改变这种行为,通过注入您的自定义转换器。您需要做的只是创建一个实现Facebook\Converter接口的转换器类,并将其注入到Facebook\Consumer中。
例如,如果您使用Symfony 2并且有AcmeDemoBundle:User类,并且您希望Facebook\Consumer输出该类,您需要
<?php # src/Acme/DemoBundle/Converter/UserConverter.php namespace Acme\DemoBundle\Converter; use Facebook\Converter; use Acme\DemoBundle\Entity\User; class UserConverter implements Converter { public function convert($json_string) { // do whatever you need to do, for example $user = new User() $user->fromArray(json_decode($json_string, true)); return $user; } }
<?php # src/Acme/DemoBundle/Controller/UserController.php namespace Acme\DemoBundle\Converter; use Acme\DemoBundle\Converter\UserConverter; class UserController extends Controller { public function newAction(Request $request) { $consumer = $this->container->get('facebook.consumer'); $consumer->setAccessToken($this->container->get('security.context')->getToken()->getAccessToken()); $consumer->setConverter('/me', new UserConverter()); $user = $consumer->call('/me'); // you can now use it for forms $form = $this->createForm(new UserType(), $user); } }