我如何使用Laravel社交名媛检索用户github存储库?

时间:2018-07-28 00:00:46

标签: laravel-5 github-api laravel-socialite

现在使用社交名流已经有一段时间了,我想知道是否有任何内置方法可以让我检索用户存储库。

我熟悉laravel website上提供的方法列表。 知道如何在给定用户令牌的情况下获取回购协议吗?

1 个答案:

答案 0 :(得分:1)

我找到了另一个去做。在下面找到代码:

在回调函数中,我添加了一个使用curl来获取存储库的函数

public function handleProviderCallback()
{
    $user = Socialite::driver('github')->user();

    $this->getUserRepos($user);

}

Get Repos函数如下:

private function getUserRepos($user)
{

 $name=$user->getNickname();
 $token=$user->token;
 // We generate the url for curl
 $curl_url = 'https://api.github.com/users/' .$name. '/repos';

 // We generate the header part for the token
 $curl_token_auth = 'Authorization: token ' . $token;

 // We make the actuall curl initialization
 $ch = curl_init($curl_url);

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

 // We set the right headers: any user agent type, and then the custom token header part that we generated
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Awesome-Octocat-App', $curl_token_auth));

 // We execute the curl
 $output = curl_exec($ch);

// And we make sure we close the curl       
curl_close($ch);

 // Then we decode the output and we could do whatever we want with it
 $output = json_decode($output);
 foreach ($output as  $repo) {
 print '<a href="' . $repo->html_url . '">' . $repo->name . '</a><br />';
 }
}

而且工作迅速。

相关问题