Lấy đường dẫn trực tiếp Google Drive bằng PHP

Cập nhật lần cuối vào

Khi bạn upload tập tin lên Google Drive và chia sẻ lại cho người dùng thì đó là link embed chứ không phải link trực tiếp. Bài viết này mình sẽ hướng dẫn cho bạn cách lấy đường dẫn trực tiếp của tập tin được chia sẻ trên Google Drive bằng mã PHP.

Google Drive App

Bài viết này mình hướng dẫn bằng ngôn ngữ PHP. Đối với các ngôn ngữ lập trình khác thì các bạn cũng làm tương tự nhé. Cách làm thì giống nhau như code thì khác, tùy thuộc vào ngôn ngữ bạn dùng.

Lấy đường dẫn trực tiếp Google Drive bằng PHP

Để lấy được đường dẫn trực tiếp từ Drive thì bạn phải có API key. Bạn truy cập vào trang chủ Google API để tạo dự án mới. Sau đó bạn vào menu Credentials để lấy API key.

function hocwp_theme_get_google_drive_file_url( $url, $api_key = '' ) {
	if ( ! empty( $api_key ) ) {
		$url   = esc_url_raw( $url );
		$parts = parse_url( $url );
		parse_str( $parts['query'], $query );
		$id = '';

		if ( isset( $query['id'] ) ) {
			$id = $query['id'];
		} else {
			$parts = explode( '/', $url );
			$key   = array_search( 'd', $parts );
			if ( is_int( $key ) && isset( $parts[ $key + 1 ] ) ) {
				$id = $parts[ $key + 1 ];
			}
		}

		if ( empty( $id ) ) {
			$last = array_pop( $parts );
			$id   = remove_query_arg( 'e', $last );
		}

		if ( ! empty( $id ) ) {
			$url = 'https://www.googleapis.com/drive/v3/files/' . $id . '?alt=media&key=' . $api_key;
		}
	}

	return $url;
}

Trong đoạn code ví dụ này mình viết trên WordPress. Do đó sẽ có những hàm mình dùng chung trong mã nguồn WordPress. Nếu bạn dùng cho các dự án PHP thuần thì bạn chỉnh sửa lại cho phù hợp nhé.

Cách sử dụng: Bạn gọi hàm và truyền vào đường dẫn chia sẻ của Google Drive. Tiếp đến bạn điền API key vào hàm. Kết quả của hàm trả về là URL trực tiếp (direct link) nếu như phân tích đúng. Ngược lại sẽ giữ nguyên URL truyền vào ban đầu.

Như vậy, qua bài viết này bạn đã biết cách lấy đường dẫn trực tiếp của tập tin trên Google Drive rồi nhé. Chúc bạn thành công.

Theo dõi
Thông báo của
guest

4 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
canhme.com
canhme.com
6 năm trước

hướng dẫn sơ xài quá , người mới bắt đầu làm sao biết

Luân Trần
6 năm trước

Có người mạo danh Canh Me này, nếu có comment nào thất lễ bạn cứ remove giúp mình nhé.