-
Notifications
You must be signed in to change notification settings - Fork 0
/
facebook_aouth.php
137 lines (127 loc) · 3.76 KB
/
facebook_aouth.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
/*
* login_with_facebook.php
*
* @(#) $Id: login_with_facebook.php,v 1.6 2016/08/07 04:37:14 mlemos Exp $
*
*/
/*
* Get the http.php file from http://www.phpclasses.org/httpclient
*/
require('http.php');
require('oauth_client.php');
$client = new oauth_client_class;
$client->debug = false;
$client->debug_http = true;
$client->server = 'Facebook';
// set the reauthenticate access only if you need to force the user to
// authenticate again even after the user has authorized the application
// before.
$client->reauthenticate = false;
$client->redirect_uri = 'http://'.$_SERVER['HTTP_HOST'].
dirname(strtok($_SERVER['REQUEST_URI'],'?')).'/login_with_facebook.php';
$client->client_id = ''; $application_line = __LINE__;
$client->client_secret = '';
if(strlen($client->client_id) == 0
|| strlen($client->client_secret) == 0)
die('Please go to Facebook Apps page https://developers.facebook.com/apps , '.
'create an application, and in the line '.$application_line.
' set the client_id to App ID/API Key and client_secret with App Secret');
/* API permissions
*/
$client->scope = 'email';
if(($success = $client->Initialize()))
{
if(($success = $client->Process()))
{
if(strlen($client->access_token))
{
$success = $client->CallAPI(
'https://graph.facebook.com/v2.3/me?fields=id,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified,email',
'GET', array(), array('FailOnAccessError'=>true), $user);
/*
if($success)
{
// Get Friends that use the same application
$success = $client->CallAPI(
'https://graph.facebook.com/v2.3/me/friends',
'GET', array(), array('FailOnAccessError'=>true), $friends);
}
*/
if($success)
{
// Requires publish_actions permissions and your application needs to be submitted for review
$values = array(
// You can no longer pre-fill the user message
'message'=>'',
'link'=>'http://www.phpclasses.org/package/7700-PHP-Authorize-and-access-APIs-using-OAuth.html',
// The name of the post can be retrieved from the page title
//'name' => 'This is the title',
// the description of the post can be retrieved from the page meta description
'description'=>'This post was submitted using this PHP OAuth API client class.',
'picture' => 'http://files.phpclasses.org/files/blog/package/7700/file/PHP%2BOAuth.png'
);
$success = $client->CallAPI(
'https://graph.facebook.com/v2.3/me/feed',
'POST', $values, array('FailOnAccessError'=>true), $post);
}
/*
if($success)
{
// Post photos in your time line
$success = $client->CallAPI(
"https://graph.facebook.com/me/photos",
'POST', array(
'message'=>'This is a test to post photos in Facebook time line using this the PHP OAuth API class: http://www.phpclasses.org/oauth-api',
'source'=>'picture.jpg'
),
array(
'FailOnAccessError'=>true,
'Files'=>array(
'source'=>array(
)
)
), $upload);
}
*/
}
}
$success = $client->Finalize($success);
}
if($client->exit)
exit;
if($success)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Facebook OAuth client results</title>
</head>
<body>
<?php
echo '<h1>', HtmlSpecialChars($user->name),
' you have logged in successfully with Facebook!</h1>';
echo '<pre>', HtmlSpecialChars(print_r($user, 1)), '</pre>';
echo '<pre>', HtmlSpecialChars(print_r($post, 1)), '</pre>';
?>
</body>
</html>
<?php
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>OAuth client error</title>
</head>
<body>
<h1>OAuth client error</h1>
<pre>Error: <?php echo HtmlSpecialChars($client->error); ?></pre>
</body>
</html>
<?php
}
?>