-
Notifications
You must be signed in to change notification settings - Fork 937
/
TwitterProvider.php
46 lines (39 loc) · 1.3 KB
/
TwitterProvider.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
<?php
namespace Laravel\Socialite\One;
class TwitterProvider extends AbstractProvider
{
/**
* {@inheritdoc}
*/
public function user()
{
if (! $this->hasNecessaryVerifier()) {
throw new MissingVerifierException('Invalid request. Missing OAuth verifier.');
}
$user = $this->server->getUserDetails($token = $this->getToken(), $this->shouldBypassCache($token->getIdentifier(), $token->getSecret()));
$extraDetails = [
'location' => $user->location,
'description' => $user->description,
];
$instance = (new User)->setRaw(array_merge($user->extra, $user->urls, $extraDetails))
->setToken($token->getIdentifier(), $token->getSecret());
return $instance->map([
'id' => $user->uid,
'nickname' => $user->nickname,
'name' => $user->name,
'email' => $user->email,
'avatar' => $user->imageUrl,
'avatar_original' => str_replace('_normal', '', $user->imageUrl),
]);
}
/**
* Set the access level the application should request to the user account.
*
* @param string $scope
* @return void
*/
public function scope(string $scope)
{
$this->server->setApplicationScope($scope);
}
}