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.
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.
hướng dẫn sơ xài quá , người mới bắt đầu làm sao biết
Tham khảo là chính bạn à, phải chỉnh sửa lại mới được. Bạn dùng ý tưởng để biên soạn thành code cho riêng mình.
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é.
Em cũng nghi nghi vậy, cảm ơn anh Luân nhé 🙂