(07-06-16, 01:11 PM)hieuvn Đã viết: ....
log in tự động cũng dễ mà, nhưng mình thì dùng IE cho khỏe, nếu bạn dùng winnet thì cũng phải khai báo thư viện winnet.dll vậy.
Tương tác Web tự động qua Web Control hoặc ActiveX là việc quen thuộc với lập trình viên tuy nhiên có nhiều điểm không ổn:
Các Trình duyệt hiện tại chỉ có Internet Explorer có sẵn ActiveX để tương tác WEB, Mozila có nữa nhưng phải cài đặt còn Chrome/ Safari, Opera thì không.
Bên cạnh đó khi dùng ActiveX dạng này chương trình sẽ chậm đi rất nhiều và đôi khi gây nhiều mệt mỏi trong khi cái ta cần chỉ là phiên làm việc được Máy chủ đồng thuận qua quá trình truy nhập (login).
Đó là lý do tại sao tôi muốn thực hiện việc thay thể WebBrowser bằng trình tự động nằm dưới cấp ứng dụng của Trình duyệt. Chủ đề về GoogleDrive chỉ là một trong các tiếp cận để chia sẻ với các bạn quan tâm về cách kết nối đăng tải file từ Google Drive mà không cần dùng trình duyệt kể cả việc lấy Token mới cho người dùng hiện tại và người dùng mới.
Thông thường để lấy được Token mới cho một người dùng mới bạn sẽ:
1. Login
2. Xin Token
3. Lấy mã xác thực và
4. Nhận Token mới
Nhưng với ứng dụng mà tôi đề xuất trong loạt bài viết này, chúng ta chỉ cần tên người dùng, mật khẩu là có thể có Token mới mà không cần biết các việc khác là gì.
Tại sao tôi phải làm thế:
Hiện tại tôi có một ứng dụng quản lý dữ liệu tập trung trên nền dữ liệu phân tán.
Có 27 huyện quản lý 27 bộ số liệu Theo dõi & Đánh giá của họ. Số liệu này thay đổi tuần 1 lần.
Muốn tổng hợp số liệu tại cấp tỉnh thì phải gom các CSDL lại bằng USB hoặc email sau đó nhập vào cấp tỉnh và tương tự tại Trung ương cũng thế.
Để giúp quá trình tổng hợp tự động, tôi tạo ra một tài khoản GoogleDrive riêng cho ứng dụng này. Cứ cuối tuần, ứng dụng cấp huyện sẽ gửi số liệu lên thư mục của họ và gắn một thông báo về phiên bản số liệu. Phần mềm cấp tỉnh sẽ đọc và lấy thông tin về và cũng làm tương tự cho tỉnh mình. Phần mềm Trung ương sẽ lấy được bản số liệu cuối có đầy đủ các huyện, tỉnh.
Thấy bài toán đó hay ho, tôi đem chia sẻ lên đây để mọi người xem...
Quay lại ý của Hiếu. WININET và WINHTTP, XMLHTTP là bộ thư viện chuẩn của Windows, bất kể có Internet Explorer hay không thì các thư viện đó đều tồn tại. Việc khai báo cho nó đơn giản hết sức: API (Với Wininet) hoặc Thiết lập Tham chiếu đến WINHTTP/XMLHTTP (Dạng early Bind hoặc Late Bind đều được).
Việc tương tác với các thư viện này nhẹ nhàng và nhanh hơn dùng Web Browser nhiều. Tuy nhiên, do sự phức tạp, chúng đòi hỏi một số kỹ năng lập trình nhất định.
Tiện việc bàn về DropBox, tôi trước đây (2 năm trước) cũng làm các tương tự để đẩy file vào DropBox và tải xuống ... nhưng 6 tháng gần đây DropBox khóa lại nên cách tiếp cận tôi nói trên đây không còn hữu hiệu nữa. Tuy nhiên, nếu muốn ta vẫn có thể làm được bằng Wininet với 10 dòng khai báo hàm API là xong....
Hy vọng vài ngày nữa nếu không quá bận tôi sẽ giới thiệu về Wininet