Các bạn sẽ rất hay thấy những dạng biểu hiện như trên trong thanh Address bar của trình duyệt. Đểu biểu diễn đoạn thông điệp truy nhập vào trang web Vinaphone, ta có thể viết lại như sau:
https://www.vinaphone.com.vn/login.do;
jsessionid=GnjnTnsvnMQSDsSh1sGs7vkYGJB72f5QpL24KSl L6FW7GMyT2pPQ!-826937979?userId=xxxxxxxx&password=yyyy
Đã truy nhập xong
Đã truy nhập xong
Bạn hãy đưa số của mình, mật khẩu truy cập để thay thế cho xxxx, yyyy và dán chúng vào thanh Address bar, nhấn Enter. Điều kỳ diệu sẽ diễn ra.
Bạn đã truy cập thành công vào Vinaphone.
Giờ chúng ta cần phải biết khi nào thì truy nhập là thành công, với giao diện web thì quá dễ vì bạn có thể thấy ngay, nhưng với một ứng dụng thứ ba, việc này khó hơn một chút.
Lô gic của tôi ở đây là: kiểm tra thông tin với yếu tố chỉ xuất hiện trong trang đã truy cập. Như vậy chữ: “Thông tin cá nhân” có vẻ là ổn nhất. Bạn cũng có thể tìm ra một chữ nào khác và phải đảm bảo chắc chắn là chúng không hiển thị tại màn hình chưa truy cập.
Trong trường hợp này tôi chọn phần mã thực hiện và cách làm cũng giống như trên. Các bạn cần chú ý đến mã thực thi của lệnh “Thông tin cá nhân” nhé”, dòng lệnh đó là:
Gửi tin nhắn
Gửi tin nhắn
/personal/myAccount.do
Phần việc với Module truy nhập đã kết thúc, bây giờ chúng ta chuyển sang phần tiếp theo.
* Module Gửi tin nhắn
Trong phần này, chúng ta cần biết những vấn đề sau:
(i) Lệnh thực thi gửi tin nhắn đi, (ii) Danh sách và thể thức các tham số và (iii) Mã xác nhận tin đã gửi đi được hay chưa.
Tương tự cách làm như trên, tôi tìm được các tham số đó như ở dưới đây (sau khi nhấn vào chế độ gửi tin nhắn)
Lệnh thực thi:
/messaging/sms/sendSms.do
Tham số:
countryCode: Mã quốc gia. bSubs: Số điện thoại cần gửi đến. message: Nội dung tin nhắn và note:Loại hình tin nhắn.
Và thể thức lệnh gửi tin nhắn là
http://www.vinaphone.com.vn/messagin...ountryCode=84& bSubs=8491xxxxxxx&message=abvdeff¬e=xxx
Chú ý về tham số Note
Chú ý về tham số Note
Các tham số như mã quốc gia, số điện thoại và nội dung tin gửi thì không có vấn đề gì, riêng tham số note, nếu mở mã nguồn phần gửi tin ở hình trên ta thấy chúng có dạng như hình bên:
Đây là dạng phím radio, nên khi ta bấm nút nào, giá trị trả về cho lựa chọn sẽ là của phím đó. Vậy 2 giá trị trả về là FREE và HAS_FEE.
Vậy lệnh gửi tin nhắn trên cần có phần note=xxx phải là note=FREE hoặc note=HAS_FEE. Cần chú ý phải là chữ hoa vì trang web dùng phần mềm Java nên chữ hoa được hiểu khác chữ thường, không giống với Visual Basic.
Bây giờ bạn thử gửi một tin nhắn hợp lệ và màn hình hiển thị ngay sau khi gửi thành công sẽ như hình bên:
Tin nhắn đã được gửi
Tin nhắn đã được gửi
Sau đó màn hình chuyển ngay về chế độ gửi tin nhắn do đặc tính redirect của trình duyệt.
Vậy thông tin để xác nhận tin nhắn đã được gửi đi là
Tin nhắn đã được gửi tới số máy xxxxx
Bây giờ chúng ta đã hoàn thành phần phân tích vấn đề.
1. Thiết kế chương trình
Mã kết nối
Mã kết nối
Để có thể thao tác được các công việc đã nêu, chúng ta cần có những module giải quyết được từng nội dung nêu trên và chúng là:
(i) Module kết nối với máy chủ, (ii) Module xử lý lệnh truy cập, gửi tin nhắn
1. Module kết nối với máy chủ
Để kết nối được với máy chủ người ta có thể dùng nhiều cách, dùng điều khiển Internet Explorer hay cũng có thể dùng các hàm API hoặc điều khiển có sẵn của windows.
Trong bài này tôi xin giới thiệu cách cuối cùng đó là điều khiển của windows, và tôi chọn bộ thư viện WinHttpRequest.
Bộ điều khiển này cho phép chúng ta thiết lập kết nối với máy chủ và lấy các phản hồi của máy chủ đề xử lý.
Để tiện theo dõi các bạn theo dõi phần thủ tục như hình bên.
Tôi đặt thủ tục kết nối và xác thực kết nối bằng một lớp Class để có thể sử dụng lại cũng như duy trì phiên làm việc. Thủ tục thực hiện việc kết nối và gửi dữ liệu là GetUrlSource với tham số truyền vào là địa chỉ cần truy cập, kết quả, hàm trả về đoạn văn bản mà trang web gửi về.
1. Module xử lý lệnh truy cập và gửi tin nhắn
Nhiệm vụ của Module này là tạo ra chuỗi thông tin để gửi đi vì thế chúng khá đơn giản, bạn có thể tham khảo trong tập tin gửi kèm nhé.
Tuy nhiên, có một lưu ý về mẹo tôi đã áp dụng, cụ thể bạn có thể xem phần này
Khai báo kiểu Nhà cung cấp
Khai báo kiểu Nhà cung cấp
Khai báo kiểu
Ví dụ về Khai báo kiểu Nhà cung cấp
Ví dụ về Khai báo kiểu Nhà cung cấp
Khai báo kiểu mẫu cho Vinaphone
Và chú ý thủ tục xử lý chuỗi sau đây. Trong thủ tục này tôi sử dụng các chuỗi đặc trưng để tiện thay thế và bạn có thể sử dụng mẫu đó với các nhà cung cấp khác. Tuy nhiên, cũng có thể lưu trữ những chuỗi này trong một tập tin mẫu chẳng hạn setting.ini hoặc tôi sẽ bổ sung một thủ tục tự cập nhật, sau này mỗi khi có thể phát triển cho một nhà cung cấp mới, phần mềm sẽ tự kiểm tra và đưa về mẫu cấu hình chuẩn.
Thủ tục lọc chuỗi gửi thông điệp POST
Thủ tục lọc chuỗi gửi thông điệp POST
Đến đây chắc các bạn đã hiểu được phần nào cách tiếp cận của công cụ. Hiện tại tôi đang có 2 phiên bản VBSMS viết bằng VB và có thể sử dụng độc lập và ExcelSMS dùng trong Excel.
1. Cơ hội mở rộng
Có nhiều hướng phát triển cho phần mềm này, song chúng ta phụ thuộc rất nhiều vào nhà cung cấp. Nếu họ sẵn sàng hợp tác và cho phép chúng ta khai thác thêm các ứng dụng API khác, chắc chắn cơ hội mở rộng tính năng cho phần mềm sẽ rất rộng.
Hiện tại, nếu có thời gian chúng ta hoàn toàn có thể bổ sung được những tính năng sau:
* Bộ đếm số thông điệp miễn phí
* Bộ quản lý địa chỉ, tin nhắn, kích hoạt các tính năng khác như thêm, bớt dịch vụ.
Nếu được nhà cung cấp hợp tác, chúng ta hoàn toàn có thể biến máy tính của mình thành một chiếc máy gửi và nhận tin nhắn (hiện tại không nhận được tin nhắn).
Xin cảm ơn các bạn đã chú ý.