Kết nối API Bing

Erstellt am: 7. Januar 2025

Beantwortet mit OpenAI 01 von OpenAI01

Frage

code kết nối API:

const url = 'https://bing-web-search4.p.rapidapi.com/bing-search';
const options = {
method: 'POST',
headers: {
'x-rapidapi-key': 'a1538c1820msh3028bc132631bf0p19a85fjsn69c4ab8bcdb1',
'x-rapidapi-host': 'bing-web-search4.p.rapidapi.com',
'Content-Type': 'application/json'
},
body: {
keyword: 'phỏm là gì',
page: 1,
lang: 'vi',
region: 'vn'
}
};

try {
const response = await fetch(url, options);
const result = await response.text();
console.log(result);
} catch (error) {
console.error(error);
}

Kết quả json từ API trả về:

{"search_results":[{"title":"Phỏm – Wikipedia tiếng Việt","url":"https://vi.wikipedia.org/wiki/Phỏm","caption":""},{"title":"Phỏm là gì? Khám phá trò chơi bài truyền thống Việt Nam","url":"https://blog-tom.com/phom/phom-la-gi/","caption":"Phỏm, hay còn được gọi là Tá Lả ở miền Bắc, là một trò chơi bài truyền thống đã ăn sâu vào văn hóa Việt Nam từ lâu đời. Tại Blog Game Bài Đổi …"},{"title":"Phỏm Là Gì? Mẹo Chơi Phỏm Chi Tiết Cho Người Mới","url":"https://khuvuichoitreem.com.vn/phom-la-gi/","caption":"18 thg 12, 2024 · Phỏm là gì? Trước hết, bạn nên biết rằng trò chơi này còn được biết đến với nhiều cái tên khác như Tá Lả, Tú Lơ Khơ hay có lẽ là …"},{"title":"Phỏm Là Gì? Hướng Dẫn Cách Chơi Phỏm Chi Tiết Cho Người Mới","url":"https://adoreyou.vn/phom-la-gi-huong-dan-cach-choi-phom-chi-tiet-cho-nguoi-moi/","caption":"30 thg 5, 2023 · Phỏm là gì? Phỏm hay còn gọi là ù, tá lả là cách chơi bài của người Việt. Số người trong mỗi ván chơi là từ 2 đến 4 người. Phỏm là tên phổ biến ở miền bắc, ở miền nam thường được gọi là đánh dogen."},{"title":"Phỏm Là Gì? ⚡️ Cách Chơi Bài Phỏm Chuẩn Cho Tân Thủ Mới Bắt Đầu","url":"https://blogcuatoi.net/phom-la-gi/","caption":"20 thg 10, 2022 · Phỏm là gì? Bài Phỏm còn có tên gọi khác là La Ta hay Ta La. Đây là một trong những trò chơi đánh bài quen thuộc với người …"},{"title":"Cách chơi phỏm, luật chơi bài phỏm chuẩn cho người mới bắt đầu","url":"https://vnask.com/cach-choi-phom-13711","caption":"28 thg 3, 2024 · Chơi phỏm là một trò kinh điển trong chơi bài và cực vui nhộn. Nếu bạn chưa biết cách chơi phỏm thì hãy tham khảo ngay hướng dẫn cách chơi phỏm, luật chơi bài phỏm chuẩn cho người mới bắt đầu sau đây của nhé! Chơi phỏm là? 1. Phỏm hay còn gọi lá tá lả, tú lơ khơ tá la, đây là một trò chơi bài được nhiều người yêu thích."},{"title":"Phỏm Là Gì? Tìm Hiểu Luật Chơi Bài Phỏm Cho Người Mới","url":"https://khafa.org.vn/phom-la-gi/","caption":"8 thg 10, 2022 · Phỏm là một kiểu chơi bài khá phổ biến ở Việt Nam, dùng bộ bài tú lơ khơ, với số lượng người chơi từ 2-4 người. Trong bài viết này, bạn sẽ tìm hiểu nguồn gốc, các lá bài quy định, luật chơi, thuật ngữ, xếp bài, đánh bài, kết thúc ván và tính tiền trong bài phỏm."},{"title":"Luật chơi phỏm - Các quy tắc, cách tính điểm và ... - MdoC","url":"https://mdoc.vn/luat-choi-phom/","caption":"5 thg 2, 2024 · Phỏm là một trò chơi bài phổ biến ở Việt Nam, yêu cầu sự tập trung cao và khả năng tính toán kỹ lưỡng. Dưới đây là một số thủ thuật để giúp bạn thắng trong trò chơi này. Xác định mục tiêu: Trước khi bắt đầu chơi, bạn cần xác định rõ mục tiêu của mình là gì."}]}


Viết cho tôi một Java Scrpit trên Google Sheet sử dụng API ở trên, đọc danh sách từ khoá trong cột A của trang tính "Keywords", gửi tới API và trả về kết quả trong trang tính "Result" gồm 4 cột "title", "url", "caption" và từ khoá tương ứng.

Gedanke

Crafting a script

I’m digging into a JavaScript snippet for Google Apps Script. It reads keywords from "Keywords" sheet, uses fetch for API data, and outputs to the "Result" sheet.

Grabbing and processing

OK, let me see. Extracting data from the "Keywords" sheet, iterating through each keyword, fetching API results, parsing JSON, and subsequently filling the "Result" sheet.

Fetching and assembling

I’m gathering keywords, hitting URLs to grab API data, and parsing results into the "Result" sheet. This method should streamline the process effectively.

Piecing together API results

Gathering data from the "Keywords" sheet, fetching API results, and logging errors for each keyword. Results are neatly stored in the "Result" sheet.

Thought about API integration in Google Sheets cho 27 giây

Antwort

Dưới đây là một ví dụ mã Google Apps Script (JavaScript) để đọc danh sách từ khóa từ cột A của sheet "Keywords", gửi từng từ khóa đến API, sau đó lưu kết quả vào sheet "Result" với 4 cột: title, url, caption, và keyword tương ứng.

Cách sử dụng:

  1. Mở Google Spreadsheet của bạn.
  2. Nhấn Extensions (Tiện ích) → Apps Script để mở trình soạn mã.
  3. Thêm đoạn mã dưới đây vào file code.
  4. Tạo sẵn 2 sheet:
    • Sheet Keywords: Chứa danh sách các từ khóa ở cột A (có thể có hoặc không có tiêu đề ở hàng đầu tiên).
    • Sheet Result: Nơi bạn muốn lưu kết quả trả về.
  5. Lưu script và chạy hàm getApiResults().
function getApiResults() { // Lấy đối tượng Spreadsheet var ss = SpreadsheetApp.getActiveSpreadsheet(); // Lấy 2 sheet: "Keywords" và "Result" var sheetKeywords = ss.getSheetByName("Keywords"); var sheetResult = ss.getSheetByName("Result"); // (Tuỳ chọn) Xoá dữ liệu cũ trên sheet "Result" nếu muốn // sheetResult.clearContents(); // Tìm số hàng cuối cùng của sheet Keywords var lastRow = sheetKeywords.getLastRow(); if (lastRow < 1) return; // Nếu không có dữ liệu thì thoát // Lấy toàn bộ dữ liệu cột A (bắt đầu từ hàng 1 hoặc 2 tuỳ bạn có tiêu đề hay không) // Ở ví dụ này, giả sử hàng 1 là tiêu đề và bắt đầu đọc từ hàng 2: var data = sheetKeywords.getRange(2, 1, lastRow - 1, 1).getValues(); // URL API var apiUrl = 'https://bing-web-search4.p.rapidapi.com/bing-search'; // Lặp qua từng từ khoá for (var i = 0; i < data.length; i++) { var keyword = data[i][0]; if (!keyword) { continue; // Nếu ô trống thì bỏ qua } // Body gửi lên API var payload = { keyword: keyword, page: 1, lang: 'vi', region: 'vn' }; // Tuỳ chỉnh options cho UrlFetchApp var options = { method: 'post', contentType: 'application/json', muteHttpExceptions: true, headers: { 'x-rapidapi-key': 'a1538c1820msh3028bc132631bf0p19a85fjsn69c4ab8bcdb1', 'x-rapidapi-host': 'bing-web-search4.p.rapidapi.com' }, payload: JSON.stringify(payload) }; try { // Gửi request đến API var response = UrlFetchApp.fetch(apiUrl, options); var resultJson = JSON.parse(response.getContentText()); // Lấy mảng kết quả search_results var searchResults = resultJson.search_results; if (searchResults && searchResults.length) { for (var j = 0; j < searchResults.length; j++) { var item = searchResults[j]; // Ghi dữ liệu vào sheet "Result" sheetResult.appendRow([ item.title || "", item.url || "", item.caption || "", keyword ]); } } } catch (error) { // Nếu có lỗi Logger.log("Lỗi khi lấy dữ liệu cho keyword: " + keyword + " - " + error); } } }

Giải thích mã:

  • sheetKeywords.getRange(2, 1, lastRow - 1, 1).getValues() lấy giá trị từ ô A2 đến A(lastRow).
  • Trong vòng for, mỗi giá trị keyword sẽ được gửi đến API bằng phương thức POST.
  • Kết quả JSON trả về được phân tích (JSON.parse) và ta lấy mảng search_results.
  • Mỗi phần tử trong search_results có ba trường chính là title, url, và caption. Ta ghi chúng kèm với keyword gốc vào sheet Result.

Bạn có thể tùy chỉnh, ví dụ như thay đổi phần lấy dữ liệu từ hàng 1 nếu không dùng hàng tiêu đề, hoặc xóa toàn bộ dữ liệu cũ trên sheet Result trước khi chạy nếu cần. Chúc bạn thành công!

Frage

Viết cho tôi một Java Script với chức năng kiểm tra mã trạng thái của một URL. Đọc danh sách URL trong cột B của trang tính "Result" trả về kết quả trong cột D mã: 200, 404, 521,....

Gedanke

Fetching URL status

I’m pulling data from column B, using UrlFetchApp to retrieve URLs with "muteHttpExceptions". Then, verifying response codes to update column D appropriately.

Thought about URL status checker cho 5 giây

Antwort

Dưới đây là một ví dụ mã Google Apps Script (JavaScript) để kiểm tra mã trạng thái (status code) của một URL. Script sẽ:

  1. Đọc danh sách URL từ cột B của sheet có tên "Result".
  2. Gửi request đến URL để lấy mã trạng thái HTTP (200, 404, 521, …).
  3. Ghi kết quả về cột D tương ứng trên cùng sheet.

Hướng dẫn

  1. Mở Google Spreadsheet của bạn.
  2. Nhấn Extensions (Tiện ích) → Apps Script để mở trình soạn mã.
  3. Thêm đoạn mã sau vào file code, sau đó lưu lại.
  4. Tạo sẵn (hoặc đảm bảo đã tồn tại) sheet có tên "Result" với URL ở cột B (bắt đầu từ hàng 2).
  5. Chạy hàm checkUrlStatusCode() để thực thi.
function checkUrlStatusCode() { // Mở Spreadsheet đang hoạt động var ss = SpreadsheetApp.getActiveSpreadsheet(); // Lấy sheet tên "Result" var sheet = ss.getSheetByName("Result"); // Tìm số hàng cuối cùng có dữ liệu var lastRow = sheet.getLastRow(); // Nếu chưa có dữ liệu hoặc chỉ có tiêu đề, thoát if (lastRow < 2) return; // Lấy dãy dữ liệu từ cột B, bắt đầu ở hàng 2 // (Giả sử hàng 1 là tiêu đề) var urlData = sheet.getRange(2, 2, lastRow - 1, 1).getValues(); // Lặp qua danh sách URL for (var i = 0; i < urlData.length; i++) { var url = urlData[i][0]; // URL ở cột B var rowIndex = i + 2; // Hàng hiện tại trong sheet // Bỏ qua nếu ô trống if (!url) continue; try { // Thực hiện fetch URL // Chú ý: cần {muteHttpExceptions: true} để không bị dừng script khi URL trả về mã lỗi var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); var statusCode = response.getResponseCode(); // Ghi mã trạng thái vào cột D sheet.getRange(rowIndex, 4).setValue(statusCode); } catch (error) { // Ghi lại lỗi nếu fetch không thành công (ví dụ URL sai, domain không tồn tại) sheet.getRange(rowIndex, 4).setValue('Error: ' + error); } } }

Giải thích:

  • sheet.getRange(2, 2, lastRow - 1, 1).getValues(): Lấy nội dung từ cột B (cột 2), hàng 2 đến hàng lastRow.
  • UrlFetchApp.fetch(url, { muteHttpExceptions: true }): Gửi request đến URL, không quăng lỗi nếu mã trả về không phải 200.
  • getResponseCode(): Lấy mã trạng thái HTTP (vd: 200, 404, 503…).
  • sheet.getRange(rowIndex, 4).setValue(statusCode): Ghi kết quả mã trạng thái vào cột D (cột 4).

Diesen Q&A teilen