【问题标题】:How do i retrieve a user github repositories with Laravel socialite?如何使用 Laravel 社交名流检索用户 github 存储库?
【发布时间】:2018-07-28 10:43:06
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    我找到了另一个这样做的。找到下面的代码:

    在回调函数中,我添加了一个使用 curl 获取 repos 的函数

    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 />';
     }
    }
    

    而且运行迅速。

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 2015-08-20
      • 2018-09-26
      相关资源
      最近更新 更多