Nodejs api GitHub

Github là một nền tảng lưu trữ hàng triệu dòng mã dưới dạng kho lưu trữ mã. Github cũng cung cấp API dựa trên Oauth mà nhà phát triển có thể tích hợp vào ứng dụng của họ. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua một ứng dụng demo đơn giản, trong đó chúng tôi cho phép người dùng xác thực thông qua tài khoản github của họ và chúng tôi sẽ tìm nạp thông tin của người dùng đã xác thực và hiển thị thông tin đó ở định dạng JSON trên màn hình của chúng tôi

  1. Nút và NPM. Bạn có thể tải về tại đây
  2. Tài khoản trên Github. Bạn có thể tạo tài khoản của mình tại đây
  3. Ứng dụng Github. Cách chúng tôi có thể tạo một ứng dụng trên github được hiển thị trong phần tiếp theo bên dưới

Bây giờ, giả sử bạn đã sẵn sàng tài khoản github, đã đến lúc tạo ứng dụng dành cho nhà phát triển. Chỉ cần làm theo các bước đơn giản sau để tạo ứng dụng github oauth của bạn

  • Bước 1. Đăng nhập vào tài khoản github của bạn và điều hướng đến tùy chọn cài đặt
    Như được hiển thị trong ảnh chụp màn hình bên dưới, các tùy chọn cài đặt có trong danh sách thả xuống xuất hiện khi bạn nhấp vào ảnh đại diện của bạn img. Chỉ cần nhấp vào cài đặt và bạn sẽ được đưa đến trang cài đặt.

    Nodejs api GitHub

  • Bước 2. Trên trang cài đặt, bạn sẽ thấy các cài đặt khác nhau ở phía bên trái [ như được hiển thị trong ảnh chụp màn hình bên dưới], bạn phải nhấp vào cài đặt dành cho nhà phát triển [ ở dưới cùng] để tiếp tục

    Nodejs api GitHub

  • Bước 3. Như được hiển thị trong ảnh chụp màn hình bên dưới, bạn sẽ thấy trang Ứng dụng OAuth, nếu đây là ứng dụng đầu tiên của bạn thì màn hình của bạn sẽ giống hệt như ảnh chụp màn hình bên dưới. Bây giờ hãy nhấp vào nút "Ứng dụng Oauth mới" để tạo Ứng dụng Oauth mới

    Nodejs api GitHub

  • Bước 4. Bạn sẽ được yêu cầu cung cấp thông tin chi tiết về ứng dụng mới của mình, chỉ cần điền vào các giá trị thích hợp

    Nodejs api GitHub

  • Bước 5. Khi bạn đã điền vào các chi tiết cần thiết, chỉ cần nhấp vào nút Đăng ký ứng dụng cho các bước tiếp theo

    Nodejs api GitHub

  • Bước 6. Như được hiển thị trên màn hình, bạn sẽ thấy rằng ứng dụng của mình đã được tạo và bạn sẽ thấy thông tin về ứng dụng của mình. Vui lòng ghi lại
    										
    >npm install request 													
    										
    									
    0 và
    										
    >npm install request 													
    										
    									
    1 của bạn vì chúng tôi sẽ cần thông tin này khi chúng tôi tạo ứng dụng nodejs của mình

    Nodejs api GitHub

Xin chúc mừng, chúng ta đã cấu hình thành công ứng dụng github của mình. Bây giờ là lúc làm việc trên ứng dụng nodejs

Bây giờ, hãy tạo một chương trình nodejs express rất đơn giản để xác thực người dùng bằng cách sử dụng github api và tìm nạp thông tin chi tiết về những người dùng đó. Trước khi chúng tôi tiếp tục tạo tệp mã nguồn của mình, hãy cài đặt các mô-đun sau nếu bạn chưa cài đặt chúng

  1. thể hiện
    										
    >npm install express 													
    										
    									

  2. yêu cầu
    										
    >npm install request 													
    										
    									


Bây giờ hãy tạo một tệp mới
										
>npm install request 													
										
									
2 và dán đoạn mã sau vào đó.
										
//Name of the file : github-auth.js
// Section 1 get the requirements and initialize express app
const express = require('express');
const request = require('request');
const app = express();


// Section 2- configure variables and different urls
// config to define app settings
// use environment variables [ process.env ] for sensitive data like api keys and secrets
var config = {
   client_id: process.env.github_client_id,
   client_secret: process.env.github_client_secret,
   redirect_url: 'http://localhost:3000/github/callback',
   authorize_url:'https://github.com/login/oauth/authorize',
   token_url: 'https://github.com/login/oauth/access_token',
   user_url: 'https://api.github.com/user',
   scope: 'user'
 };


// Section-3 Define the routes and callback url

// define routes

app.get('/github/auth', function(req,res){
   // redirect the user to github authorization url
   return res.redirect(config.authorize_url);
});

app.get('/github/callback', function(req,res){
   // extract authorize code 
   var code = req.query.code

   // configure request params
   options = {
     method: 'POST',
     uri: config.token_url,   
     formData: {
       client_id   : config.client_id,
       client_secret   : config.client_secret,
       code : code
     },
     headers: {
       accept:  'application/json'
     }
   };

   // make a request for auth_token using above options
   request(options , function(e,r,b){
   
     // process the body
     if(b) {
       jb = JSON.parse(b)

       // configure request to fetch user information
       options_user = {
         method:'GET',
         url: config.user_url+'?access_token='+jb.access_token,
         headers: {
           accept: 'application/json',
           'User-Agent': 'custom'
         }
       }
       request(options_user , function(ee,rr,bb){
         // process the body
         if(bb) {
           var bo = JSON.parse(bb)
           var resp = {
             name: bo.name ,
             url: bo.url ,
             id: bo.id ,
             bio: bo.bio
           }
           return res.json(resp)
         }
         else {
           console.log(er)
           return res.json(er)
         }
       });
     }
   });
 });


// Section 4 start the app

app.listen(3000, () => console.log('Njera github-api app listening on port 3000!'));

										
									

  • Phần 1. tham khảo nhận xét trong mã
    Trong phần 1 của mã, chúng tôi đã thực hiện nút thông thường. js cụ thể là lấy các phụ thuộc cần thiết bằng cách sử dụng từ khóa
    										
    >npm install request 													
    										
    									
    3 và khởi tạo một ứng dụng cấp tốc.
  • Phần-2. Trong phần này, chúng tôi đã khởi tạo cấu hình cho ứng dụng của mình. Lưu ý rằng chúng tôi đang sử dụng các biến môi trường
    										
    >npm install request 													
    										
    									
    0 và
    										
    >npm install request 													
    										
    									
    1 , bạn sẽ cần đặt chúng để ứng dụng của mình hoạt động bình thường.
    Trong Ubuntu, hãy sử dụng các lệnh sau trong thiết bị đầu cuối của bạn.
    												
    >export github_client_id=YOUR_CLIENT_ID
    >export github_client_secret=YOUR_CLIENT_SECRET													
    												
    											

    Trong dấu nhắc lệnh của cửa sổ.
    												
    set github_client_id=YOUR_CLIENT_ID
    set github_client_secret=YOUR_CLIENT_SECRET													
    												
    											

    _______12 và
    										
    >npm install request 													
    										
    									
    3 của bạn giống như những gì chúng tôi nhận được khi tạo ứng dụng github. Vì vậy, chỉ cần tạo các biến môi trường này và chúng ta đã sẵn sàng.
  • Phần-3 Xác định các tuyến bắt buộc Chúng tôi có 2 tuyến, đầu tiên là nơi chúng tôi chuyển hướng người dùng đến github để lấy mã ủy quyền và một tuyến khác là cuộc gọi lại mà người dùng được chuyển hướng đến sau khi xác thực và ủy quyền thành công ở phía github
    1. Nhận ủy quyền_code từ url gọi lại
    2. Trao đổi ủy quyền_code cho access_token sử dụng mô-đun yêu cầu
    3. Nhận thông tin người dùng đã xác thực, một lần nữa bằng cách sử dụng mô-đun yêu cầu
  • Phần-4. Chạy ứng dụng
    Đây là nơi cuối cùng chúng tôi khởi chạy ứng dụng của mình trên cổng 3000 của máy cục bộ. Chúng ta có thể chạy ứng dụng của mình theo cách sau.
    												
    >node github-auth.js												
    												
    											

Sau khi ứng dụng của bạn khởi chạy thành công , chỉ cần truy cập trình duyệt của bạn tại.
http. //máy chủ cục bộ. 3000/github/auth
và điều này sẽ đưa bạn đến github để xác thực và ủy quyền, ủy quyền cho ứng dụng của bạn sử dụng thông tin của bạn và sau khi thực hiện xong, bạn sẽ thấy các chi tiết cơ bản của mình được hiển thị trên màn hình.

Những gì chúng ta đã thảo luận trong hướng dẫn ngắn này chỉ là giọt nước trong đại dương, còn rất nhiều nội dung thông tin khác mà bạn có thể nhận được bằng cách sử dụng github api, để khám phá thêm về api, hãy truy cập trang nhà phát triển github

Trong chương này của loạt bài hướng dẫn về nút trong 30 ngày, chúng ta đã tìm hiểu về nodejs và github api, chúng ta đã hoàn thành những điều sau

Nodejs có TỐT CHO REST API không?

Bạn có thể xây dựng API REST bằng Node. js rất nhanh . Nút. js có cộng đồng lớn và tích cực đóng góp nhiều mô-đun hữu ích và trưởng thành, có thể dễ dàng đưa vào và sử dụng.

Nodejs có hỗ trợ GitHub không?

Người chạy hỗ trợ Node. js 16 hành động có sẵn trên tất cả các trình chạy được lưu trữ trên GitHub và trong GitHub Enterprise Server 3. 4 trở lên . Máy chủ doanh nghiệp GitHub 3. 3 trở lên có thể tự cài đặt trình chạy mới hơn để thêm hỗ trợ cho Node.

Tôi có thể sử dụng GitHub làm API không?

Nếu bạn muốn sử dụng API GitHub REST cho mục đích sử dụng cá nhân, bạn có thể tạo mã thông báo truy cập cá nhân . Hoạt động API REST được sử dụng trong bài viết này yêu cầu phạm vi repo cho mã thông báo truy cập cá nhân (cổ điển) hoặc, trừ khi có ghi chú khác, quyền truy cập chỉ đọc vào kho lưu trữ công khai đối với mã thông báo truy cập cá nhân chi tiết.

Nodejs có được sử dụng cho API không?

Node-API là bộ công cụ được giới thiệu trong Node 8. 0. 0 đóng vai trò trung gian giữa mã C/C++ và công cụ Node JavaScript . Nó cho phép mã C/C++ truy cập, tạo và thao tác với các đối tượng JavaScript như thể chúng được tạo bởi mã JavaScript. Node-API được tích hợp vào Node phiên bản 8. 0.