Làm cách nào để lấy dữ liệu từ php sang google sheet?

Trước đây, tôi đã từng làm việc trong một dự án mà chúng tôi muốn ghi dữ liệu động vào Bảng tính Google. Để đạt được điều này, chúng tôi đã tương tác với Google Sheets API. Tôi thấy đây là một chủ đề thú vị cho bài đăng trên blog có thể hữu ích cho người đọc. Vì vậy, trong bài viết này, chúng tôi nghiên cứu cách tích hợp Google Sheets API bằng PHP. Chúng tôi sẽ thực hiện các thao tác tạo, viết, nối và đọc trên bảng tính Google thông qua API Trang tính

Google Spreadsheet là một bộ phần mềm văn phòng dựa trên web miễn phí được duy trì bởi Google. Người ta có thể sử dụng bảng tính cho mục đích riêng của họ trong dịch vụ Google Drive

Khi nói đến các trang web, bạn có thể sử dụng Google sheet cho nhiều mục đích khác nhau. Người ta có thể lưu trữ thông tin liên hệ của người dùng (điện thoại và email), chi tiết thanh toán, đăng ký sự kiện, hoạt động, v.v. trong trang tính Google. Trên trang web, bạn có thể muốn một hệ thống tự động thực hiện tất cả các thao tác đọc, ghi trên bảng tính khi kích hoạt một hành động cụ thể. Nó có thể được thực hiện thông qua API Trang tính. Như đã nói, hãy bắt đầu với việc tích hợp Google Sheets API trong ứng dụng của bạn

Đăng ký một ứng dụng và tạo thông tin xác thực

Tôi sẽ sử dụng OAuth để tương tác với API. OAuth là một cách an toàn hơn và được đề xuất để thực hiện các thao tác API. Thực hiện theo các bước bên dưới cần thiết để tích hợp OAuth

  • Truy cập Bảng điều khiển dành cho nhà phát triển của Google https. // bảng điều khiển. nhà phát triển. Google. com
  • Tạo một dự án mới. Ngoài ra, bạn cũng có thể chọn các dự án hiện có
  • Đặt tên cho dự án của bạn. Google Console sẽ tạo một ID dự án duy nhất cho nó
  • Dự án của bạn sẽ xuất hiện trên đầu thanh bên trái
  • Nhấp vào Thư viện. Bạn sẽ thấy một danh sách các API của Google
  • Bật API Google Trang tính
  • Nhấp vào Thông tin xác thực. Chọn Oauth Client id bên dưới Tạo thông tin đăng nhập. Chọn nút radio cho Ứng dụng web
  • đặt tên. Trong Nguồn gốc JavaScript được ủy quyền, hãy nhập URL tên miền của bạn. Trong URI chuyển hướng được ủy quyền, hãy thêm liên kết của URL chuyển hướng. Trong trường hợp của tôi, tôi đã chuyển URL
    composer install
    0
  • Bấm vào nút Tạo. Bạn sẽ nhận được ID khách hàng và bí mật khách hàng trong cửa sổ bật lên. Sao chép các chi tiết này. Chúng tôi sẽ cần nó trong giây lát

Làm cách nào để lấy dữ liệu từ php sang google sheet?

Cấu hình cơ bản

Để sử dụng OAuth để thực hiện các hoạt động API, nó yêu cầu bạn tạo mã thông báo truy cập đóng vai trò là mã định danh cho tài khoản của bạn. Sử dụng mã thông báo truy cập này, Google API xác thực xem yêu cầu đến có hợp lệ và được ủy quyền hay không

Mã thông báo truy cập có tuổi thọ ngắn. Chúng hết hạn sớm. Và sau khi hết hạn, chúng tôi không thể thực hiện lệnh gọi API vì Google coi yêu cầu có mã thông báo đã hết hạn là yêu cầu trái phép. Để giải quyết vấn đề này, chúng tôi sử dụng 'refresh_token' để tạo lại mã thông báo truy cập trong nền. Đây là cách OAuth hoạt động

Hãy bắt đầu xây dựng luồng OAuth. Tạo tệp

composer install
1 và thêm các dòng dưới đây vào đó

{
    "require": {
        "google/apiclient": "^2.10",
        "hybridauth/hybridauth" : "~3.0"
    },
    "scripts": {
        "pre-autoload-dump": "Google\\Task\\Composer::cleanup"
    },
    "extra": {
        "google/apiclient-services": [
            "Sheets"
        ]
    }
}

Ở đây chúng tôi đang cài đặt thư viện “google/apiclient”. Có hơn 200 dịch vụ API của Google và chúng tôi chỉ cần dịch vụ 'Trang tính'. Vì vậy, tôi đã sử dụng tác vụ

composer install
2 để dọn dẹp và chỉ giữ lại dịch vụ 'Trang tính'

Tiếp theo, chạy lệnh bên dưới để cài đặt các thư viện này

composer install

Khi chúng tôi tạo mã thông báo truy cập, nó cần được lưu trữ trong cơ sở dữ liệu. Bằng cách lưu trữ nó, bạn có thể tìm nạp mã thông báo bất cứ lúc nào và thực hiện lệnh gọi API. Chạy truy vấn bên dưới để tạo bảng trong cơ sở dữ liệu

CREATE TABLE `google_oauth` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `provider` varchar(255) NOT NULL,
 `provider_value` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Bây giờ, hãy tạo một lớp DB sẽ tương tác với cơ sở dữ liệu và truy xuất, lưu trữ, cập nhật thông tin mã thông báo trong bảng

lớp-db. php

db)){
            // Connect to the database
            $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);
            if($conn->connect_error){
                die("Failed to connect with MySQL: " . $conn->connect_error);
            }else{
                $this->db = $conn;
            }
        }
    }
 
    public function is_table_empty() {
        $result = $this->db->query("SELECT id FROM google_oauth WHERE provider = 'google'");
        if($result->num_rows) {
            return false;
        }
 
        return true;
    }
 
    public function get_access_token() {
        $sql = $this->db->query("SELECT provider_value FROM google_oauth WHERE provider = 'google'");
        $result = $sql->fetch_assoc();
        return json_decode($result['provider_value']);
    }
 
    public function get_refersh_token() {
        $result = $this->get_access_token();
        return $result->refresh_token;
    }
 
    public function update_access_token($token) {
        if($this->is_table_empty()) {
            $this->db->query("INSERT INTO google_oauth(provider, provider_value) VALUES('google', '$token')");
        } else {
            $this->db->query("UPDATE google_oauth SET provider_value = '$token' WHERE provider = 'google'");
        }
    }
}

Thay thế các trình giữ chỗ trong đoạn mã trên bằng thông tin đăng nhập cơ sở dữ liệu thực tế. Ở đây tôi giả sử bạn muốn sử dụng một tài khoản Google. Nếu bạn có ý định sử dụng nhiều tài khoản thì hãy sửa đổi các truy vấn theo yêu cầu của bạn

Tạo mã thông báo truy cập cho Google Sheet API

Chúng ta đã hoàn thành việc tạo bảng và cài đặt thư viện. Tiếp theo, chúng tôi cần cấp quyền cho tài khoản Google và lưu trữ mã thông báo truy cập trong bảng ‘google_oauth’

Tạo tệp

composer install
3 và viết cấu hình theo hướng dẫn của thư viện HybridAuth

cấu hình. php

________số 8

Đảm bảo xác định giá trị của các hằng số GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET. Ngoài ra, hãy chuyển URL gọi lại cho phím 'gọi lại'. Khi người dùng hoàn thành ủy quyền, họ sẽ chuyển hướng đến URL gọi lại này

Sử dụng tệp

composer install
4, chúng tôi sẽ lấy chi tiết mã thông báo truy cập và lưu trữ chúng trong cơ sở dữ liệu như sau

gọi lại. php

composer install
0

Bây giờ, hãy truy cập trình duyệt và chạy YOUR_DOMAIN_URL/callback. php, nó sẽ chuyển hướng bạn đến tài khoản Google. Hoàn tất quá trình ủy quyền. Sau khi hoàn tất quy trình, hãy kiểm tra bảng ‘google_oauth’. Nó nên đã lưu trữ thông tin mã thông báo

Tạo Bảng tính bằng API Trang tính và PHP

Bạn đã lưu trữ mã thông báo truy cập trong bảng của mình. Khi chúng tôi có mã thông báo truy cập, chúng tôi có thể tương tác với Google Sheets API. Hãy bắt đầu với việc tạo bảng tính theo chương trình

tạo trang tính. php

composer install
1

Mã này lấy chi tiết mã thông báo từ cơ sở dữ liệu. Sử dụng mã thông báo này, nó gọi dịch vụ Google trang tính và tạo bảng tính. Tôi đã in ID của bảng tính đã tạo

Nếu mã thông báo truy cập hết hạn, thì mã sẽ chuyển đến khối bắt. Trong khối catch, nó tạo lại mã thông báo truy cập, cập nhật nó trong cơ sở dữ liệu và tiếp tục hoạt động API

Mã tương tự với một vài thay đổi sẽ được sử dụng cho các thao tác khác trên bảng tính

Ghi dữ liệu vào bảng tính

Để thực hiện các thao tác ghi, bạn cần chuyển một dãy ô cần ghi. Chẳng hạn, bạn muốn thêm tiêu đề Tên và Email ở trên cùng. Trong trường hợp đó, phạm vi của bạn trở thành 'A1. B1’. Có nghĩa là chúng ta sẽ viết tiêu đề Tên và Email lần lượt trong các ô A1 và B1

composer install
2

Ở đây, tôi đã chuyển ID bảng tính cho phương thức

composer install
5. Bạn có thể sửa đổi chức năng này và chuyển các tham số bổ sung. Trong đoạn mã trước, chúng tôi đã trả về ID bảng tính có thể được sử dụng trong đoạn mã trên. Ngoài ra, bạn có thể lấy ID bảng tính từ URL trang tính của mình. Xem ảnh chụp màn hình bên dưới

Làm cách nào để lấy dữ liệu từ php sang google sheet?

Nối dữ liệu vào Google Sheet

Nếu bạn muốn thêm thông tin liên tục trong Google Trang tính, thì bạn cần thêm thông tin đó vào bảng tính hiện có. Có thể có trường hợp bạn muốn nối thêm một hoặc nhiều hàng trong một lần. Người dùng có thể chuyển một hoặc nhiều phần tử mảng và nối thêm dữ liệu vào trang tính như hình bên dưới

composer install
4

Tôi đã sử dụng phạm vi 'A1. B1’ và chuyển 2 phần tử mảng riêng biệt. API trang tính nối các chi tiết này sau dữ liệu bảng. Hãy lưu ý mặc dù chúng tôi đang vượt qua 'A1. B1’ trong phạm vi, nó sẽ không thay thế các giá trị đã được ghi trong các ô này. Thay vào đó, nó ghi dữ liệu vào các ô có sẵn tiếp theo

Đọc dữ liệu từ Google Sheet

Chúng tôi đã viết mã để tạo bảng tính, viết và nối thêm dữ liệu vào bảng tính. Cuối cùng, hãy xem cách đọc dữ liệu từ Google Sheet

composer install
5

Tôi hy vọng bạn hiểu cách tích hợp Google Sheets API bằng PHP. Tôi muốn nghe những suy nghĩ và đề xuất của bạn trong phần bình luận bên dưới

Làm cách nào tôi có thể chuyển đổi peso sang Google Trang tính?

Để áp dụng định dạng tiền tệ tùy chỉnh cho bảng tính của bạn. .
Trên máy tính, hãy mở một bảng tính trong Google Trang tính
Đánh dấu dữ liệu bạn muốn định dạng
Nhấp vào Định dạng. Con số
Nhấp vào Đơn vị tiền tệ tùy chỉnh
Tìm kiếm trong hộp văn bản menu để chọn một định dạng. Bạn cũng có thể thêm định dạng tiền tệ tùy chỉnh của riêng mình vào hộp văn bản
Nhấp vào Áp dụng

Bạn có thể nhập dữ liệu từ một trang web vào Google Trang tính không?

Google Trang tính cung cấp chức năng có tên là NhậpHTML để nhập dữ liệu từ bảng hoặc danh sách trong trang HTML . Bạn có thể sử dụng chức năng này để tự động lấy dữ liệu vào Google Sheet rồi vào Geckoboard.