annotate default/assets/vendors/theme-widgets/vendor/mute/facebook/README.rst @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 Mute Facebook
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 =============
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 Implements `Graph API`_ and some of the OAuth facilities to operate with Facebook. See `examples`_ for usage.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 This library package requires `PHP 5.3`_ or later.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 How to use this library
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 -----------------------
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 Simple requests::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 $app = new \Mute\Facebook\App(APP_ID, APP_SECRET, APP_NAMESPACE);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 // get name of a user
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 $response = $app->get(USER_ID, array('fields' => 'name'));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 echo "user's name is " . $response['name'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 // or the full response
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 $response = $app->get(USER_ID, array('fields' => 'name'), null, true);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 echo "user's name is " . $response['body']['name'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 // post a photo
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 $response = $app->post(USER_ID . '/photo', null, array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 'source' => PHOTO_FILENAME
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 // get the fresh list friends
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 $response = $app->get(USER_ID . '/friends', null, null, array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 'If-None-Match: ' . PREVIOUS_ETAG,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 By default, app access token will be automatically append. If you need to request with a custom access_token::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 $data = $app->get('me', array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 'access_token' => MY_ACCESS_TOKEN,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 // or
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 $customApp = $app->getAuthenticatedGraphApi(MY_ACCESS_TOKEN);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 $data = $customApp->get('me');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 Batched requests::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 // only bodies
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 $responses = $customApp->batch()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 ->get('me')
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 ->get('me/friends', array('limit' => 50))
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 ->execute();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 // or
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 $responses = $customApp->batch(function($app) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 $app->get('me');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 $app->get('me/friends', array('limit' => 50));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 // for full responses, you can do
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62 $responses = $customApp->getAuthenticatedGraphApi(MY_ACCESS_TOKEN)->batch()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 ->get('me')
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 ->get('me/friends', array('limit' => 50))
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 ->execute(true);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 // or
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 $responses = $customApp->batch(function($customApp) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 $customApp->get('me');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 $customApp->get('me/friends', array('limit' => 50));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 }, true);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 Sometimes you need more control of the http request. for this you can manipulate the options::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 // fetching a paginated list of friends can very long, set up the timeout to 30 seconds
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76 $app->setOptions('timeout', 60);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77 $friends = $app->get(USER_ID . '/friends', array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 'offset' => 5000,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79 'limit' => 5000,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81 // once finished, you can reset the options
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 $app->resetOptions();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
83
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
84 Api will hit default graph api version. You may change version::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
85
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
86 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
87 $app = $app->changeVersion('v2.0');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
88
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
89
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
90 More
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
91 ----
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
92
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
93 For generating the API doc, install apigen_, and then run::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
94
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
95 $ apigen -c apigen.neon
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
96
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
97 For running unittests, install PHPUnit_, and then run::
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
98
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
99 $ phpunit -c tests/phpunit.xml
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
100
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
101
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
102 .. _Graph API: https://developers.facebook.com/docs/reference/api/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
103 .. _examples: https://github.com/johnnoone/php-facebook/tree/master/example
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
104 .. _PHP 5.3: http://php.net/releases/5_3_0.php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
105 .. _apigen: apigen.org
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
106 .. _PHPUnit: www.phpunit.de