Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
test đăng bài
#1
Mới đăng bài bị lỗi. Sao đây tadfgd
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Googdrive...tiếp nào

Sau thời gian nghiên cứu và mày mò, có vẻ công cụ tải file, upload file lên googdrive bằng VBA là hoàn toàn khả thi.

Hôm nay tôi xin phép giới thiệu với các bạn phần đầu của nỗ lực này nhé.

Trước hết, để tiện lợi cho việc viết bài, tôi sẽ lấy một ứng dụng mở, tôi sử dụng làm thí nghiệm.



A. Để làm việc được với Googdrive từ VBA hoặc bất cứ ứng dụng nào không phải là giao diện Web, bạn cần thỏa mãn được mấy điều kiện sau:

+ Có một Ứng dụng được tạo ra để truy cập vào các dịch vụ của Google

+ Ứng dụng này được tạo ra với các thông số tối thiểu sau

* AppID (Mã ứng dụng). Trong ví dụ của tôi là [openstore-1034]

* ClientID (Mã ứng dụng khách). Trong ví dụ của tôi là ["759747656687-rjkm22bit7ob5tufc5sbgg1gsuj48fme.apps.googleusercontent.com"]

* ClientSecret (mã bí mật của ứng dụng khách). Trong ví dụ của tôi là ["Jf5DqXlZ2G3cOtUtHIraaxvQ"]

+ Khi ứng dụng này truy cập vào bất cứ dịch vụ nào, người dùng cần phải truy cập vào tài khoản gmail sau đó phải chấp thuận cho ứng dụng sử dụng.



(Ở đây tôi gọi ứng dụng khách viết trên VBA chẳng hạn chung là Ứng dụng)



Cơ chế làm việc để thao tác được với các dịch vụ của google như sau

Bước 1: Người dùng đăng nhập vào Google với tài khoản và mật khẩu riêng;

Bước 2: Ứng dụng gửi thông tin ClientID vf ClientSecret vào Google trong đó thông báo cơ chế xác thực là nhận mã trực tiếp hoặc thông qua một trang web trung gian nào đó.

Bước 3: Google sẽ hiển thị cơ chế để người dùng chấp thuận sử dụng ứng dụng này hay không.

Bước 4: Sau khi người dùng chấp thuận, Google sẽ gửi 1 mã xác thực ở đây gọi là AuthorisationCode về trình duyệt hoặc trang web trung gian (ở đây tôi không dùng cơ chế này mà dùng cơ chế gửi xác thực qua trình duyệt).

Bước 5: Ứng dụng sử dụng cơ chế đặc biệt nào đó để nhận được mã xác thực này và gửi lại cho Google.

Bước 6: Google khi nhận được mã xác thực do ứng dụng gửi lại sẽ chuyển cho Ứng dụng một mã truy cập gọi là Token trong đó quy định Mã, thời gian hết hạn.



Từ lần này, với Token này, ứng dụng sẽ thỏa thích vào khu vực dịch vụ mà nó đăng ký mà không cần phải đăng nhập với tên người dùng và mật khẩu nữa.

Sau một thời gian mã token hết hạn thì Ứng dụng sẽ phải gửi lệnh làm mới Token và bắt đầu thực hiện lại từ bước 5.



Với phần demo trong bài trước, tôi đã thí nghiệm cho các bạn thấy được việc đi qua hết các bước một cách hoàn toàn tự động với Access và trình duyệt InternetExplorer.

Riêng với phần gửi file, tải file, xóa file ...vv thì trước đây tôi chưa giải quyết được vì chưa nắm được bí quyết của việc trao đổi thông tin với máy chủ của Google.

Do đó tôi đã phải nhờ đến một phần mềm là rclone để thực hiện việc này. Nói chung tiếp cận này là khá an toàn vì ứng dụng rclone được viết rất chuẩn mực.



Tuy vậy, tôi vẫn thấy bất tiện và muốn làm độc lập bằng VBA và không cần nhờ vả gì nữa. Và đó chính là chủ đề bài viết này.



B. Làm thế nào để tương tác với GoogleDrive.

Tất nhiên phải cảm ơn Google là đã thiết kế ra hệ thống trợ giúp thật tốt. Đầu tiên, tôi vào trang này

https://developers.google.com/drive/v2/reference/files

Tại trang này Google hướng dẫn khá chi tiết việc làm thế nào để thao tác với đối tượng tập tin trong GoogleDrive.



Lấy ví dụ: Tôi muốn liệt kê các file trong Kho GoogleDrive của mình.

Đầu tiên tôi sẽ chọn và đọc hướng dẫn ở đây

https://developers.google.com/drive/v2/r...files/list
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Bỏ qua phần đầu, ta chú ý đến mục Request. Google thông báo rằng lệnh này được thực hiện qua phương thức Http với HTTP request trong đó công cụ thực hiện việc lấy danh sách các đối tượng trong Google drive như trong phần dưới đây.

G ET https://www.googleapis.com/drive/v2/files

Chú ý là

G ET = Phương thức (trong phương thức Http request ta có P USH, P OST ..vv)

(**) Sau G ET là https://www.googleapis.com/drive/v2/files, đây chính là địa chỉ ứng dụng thực hiện việc thao tác với File.



Giờ ta đi tiếp, bỏ qua các Parameters, vì ta sẽ quan tâm đến nó sau này. Nếu các bạn biết tiếng Anh thì cũng đọc được.



Đến phần Authorization ta thấy phần quy định Scope. Đây chính là phạm vi thao tác của công cụ đã nói tại mục (**) trên đây.

Cái này chúng ta cũng chưa cần quan tâm.



Đi tiếp đến Request body, phần này không có quy định cụ thể gì.

Đến phần Response. Google nói rằng, nếu người dùng xác thực thành công và gửi thông tin thành công, Google sẽ phản hồi bằng thông điệp có dạng

Mã:
{
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]  "kind": "drive#fileList",
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]  "etag": etag,
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]  "selfLink": string,
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]  "nextPageToken": string,
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]  "nextLink": string,
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]  "items": [
    files Resource
  ]
[/font][/size][/color]
[color=#111111][size=small][font=Tahoma,Verdana,Arial,sans-serif]}
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
Post
GET
Insert
Delete
  .Open "GET", url_destino & filterStr
GET = Phương thức (trong phương thức Http request ta có PUSH, POST ..vv)
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
[b] *[/b]
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
<iframe width="853" height="480" src="//www.youtube.com/embed/qpgTC9MDx1o" frameborder="0" allowfullscreen></iframe>
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#7
delete * form test
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
SqlStr="DELETE * F ROM [Tên bảng] WHERE [Tên công văn]= '[Giá trị

    đang chọn trong list box]';"
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#9
Mới upgrade phiên bản Mybb 18.6
Post test
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Test Smile yahoo Noname 12 5,079 27-11-16, 12:29 PM
Bài mới nhất: Noname
  Test đang nhiều clip Noname 0 167 09-09-15, 10:13 PM
Bài mới nhất: Noname
  Test đăng bài: Tổng hợp các phiên bản Window dạng ISO (linkdown Tốc độ cao) maidinhdan 0 371 07-08-15, 10:54 AM
Bài mới nhất: maidinhdan
  test đăng bài thêm phát nữa Noname 2 594 16-07-15, 06:26 PM
Bài mới nhất: Noname
  test lan n Noname 8 883 13-07-15, 01:28 AM
Bài mới nhất: Noname

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ