1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Solved] _HttpRequest: Cách đăng nhập snuckls.com bằng tài khoản Facebook

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi thien ho, 2/6/17.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. thien ho

    thien ho Thành viên
    • 18/23

    Tham gia ngày:
    24/5/17
    Bài viết:
    62
    Đã được thích:
    42
    Mình muốn request tới cái trang login của nó nhưng nó không login bằng tài khoản mật khẩu mà login bằng facebook
    như vậy thì có cách nào request tới cái trang login facebook của nó
    ví dụ như những trang này : https://www.snuckls.com/
    muốn login được nó bạn phải có link giới thiệu (http://bit.ly/snuckls)
    link giới thiệu đấy không phải của mình nên đừng bảo mình câu ref hay gì
     
  2. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Login bằng tài khoản facebook hồi xưa thì khó chứ từ ngày thým @Nguyễn Quốc Tuấn public cái UDF Facebook.au3 thì mọi việc quá đơn giản (login facebook không mã hoá phức tạp như thằng Google)

    2 hàm đăng ký và đăng nhập vào Snuckls.com iêm mới viết:

    Mã (AutoIt):
    Func Snuckls_Register($Handle)
        If Not IsArray($Handle) Then Return SetError(-1, '', False)
        Local $rq0 = _HttpRequest(2, 'https://www.snuckls.com')
        Local $oAuthLink = StringRegExp($rq0, '(\Qhttps://www.facebook.com/v2.8/dialog/oauth?client_id=\E.*?user_friends)', 1)
        If @error Then Return SetError(1, '', False)
        Local $rq1 = _HttpRequest(2, $oAuthLink[0], '', $Handle[0])
        $rq1 = StringReplace($rq1, '\', '')
        Local $input_hidden = StringRegExp($rq1, 'name="(?:encoded_state|read|seen_scopes|logger_id)" value="(.*?)"', 3)
        If @error Then Return SetError(2, '', False)
        Local $Data2Post = 'fb_dtsg=' & $Handle[2] & '&app_id=485175661693050&redirect_uri=https%3A%2F%2Fwww.snuckls.com%2Finvite%2Fregisterfbuser&display=page&access_token=&sdk=php-sdk-5.0.0&from_post=1&encoded_state=' & _URIEncode($input_hidden[0]) & '&public_info_nux=true&private=&login=&read=' & _URIEncode($input_hidden[1]) & '&write=&extended=&social_confirm=&confirm=&seen_scopes=' & _URIEncode($input_hidden[2]) & '&auth_type=&auth_token=&auth_nonce=&default_audience=&ref=Default&return_format=code&domain=&sso_device=&logger_id=' & _URIEncode($input_hidden[3]) & '&sheet_name=initial&scope_objects=[]&total_scope_objects=[]&scope_objects_count=[]&__CONFIRM__=1&__user=' & $Handle[1] & '&__a=1'
        Local $rq2 = _HttpRequest(2, 'https://www.facebook.com/v2.8/dialog/oauth/read?dpr=1', $Data2Post, $Handle[0])
        If Not StringRegExp($rq2, '"\Qhttps:\/\/www.snuckls.com\/invite\/registerfbuser?code=\E"') Then Return SetError(3, '', False)
        Return True
    EndFunc

    Func Snuckls_Login($Handle)
        If Not IsArray($Handle) Then Return SetError(-1, '', False)
        Local $rq0 = _HttpRequest(2, 'https://www.snuckls.com')
        If @error Then Return SetError(1, '', False)
        Local $oAuthLink = StringRegExp($rq0, '(\Qhttps://www.facebook.com/v2.8/dialog/oauth?client_id=\E.*?user_friends)', 1)
        If @error Then Return SetError(2, '', False)
        Local $rq1 = _HttpRequest(1, $oAuthLink[0], '', $Handle[0])
        Local $Location = StringTrimRight(_GetLocation_Redirect($rq1), 4)
        If @error Then Return SetError(3, '', False)
        Local $rq2 = _HttpRequest(1, $Location)
        If Not StringInStr($rq2, 'https://www.snuckls.com/video/ticketdetails', 0, 1) Then Return SetError(4, '', False)
        Return True
    EndFunc
    Lưu ý:
    - Tham số $Handle là giá trị trả về của hàm FB_Login hoặc FB_LoginEx, nếu chưa biết về UDF này thì tham khảo tại đây: https://autoitvn.com/threads/tuong-tac-voi-facebook-bang-winhttp.483/
    - Cookies được lưu trong Cache nên không cần lưu trữ vào biến để gọi lại nó, chỉ cần chạy FB_Login => Snuckls_Register (nếu chưa đăng ký app cho tài khoản) => Snuckls_Login => các hàm Request tiếp theo mà thým code (với tham số Cookies để là rỗng) là OK

    Code mẫu ví dụ (đã register app rồi mới chạy thành công nhoé)
    Mã (AutoIt):
    $u = 'tài khoản fb'
    $p = 'mật khẩu fb'
    Local $Handle = FB_Login_Ex($u, $p)
    If Not IsArray($Handle) Or @error Then Exit MsgBox(4096, '', 'Login FB thất bại')
    Snuckls_Login($Handle) ; <= sau hàm này cookies thông tin đăng nhập Snuckls đã lưu vào cache
    If @error Then Exit MsgBox(4096, '', 'Login Snuckls thất bại')
    Local $data = _HttpRequest(2, 'https://www.snuckls.com') ; <= request thử trang chủ Snuckls
    _FileWrite_Test($data)

    [​IMG]
    iêm chỉ giúp đến đây và không trả lời thêm gì nữa, còn lại thým tự nghiên cứu nhoé :D Các trang khác iêm thấy cũng gần như tương tự thôi :p
     
  3. thien ho

    thien ho Thành viên
    • 18/23

    Tham gia ngày:
    24/5/17
    Bài viết:
    62
    Đã được thích:
    42
    đa tạ bác rất nhiều <3
     
  4. thien ho

    thien ho Thành viên
    • 18/23

    Tham gia ngày:
    24/5/17
    Bài viết:
    62
    Đã được thích:
    42
  5. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    ủa, nhìn hình thì cái UDF _HttpRequest thým xài hình như cũ lắm rồi thì phải, bản mới đâu còn Include cái Misc.au3 nữa :v

    Thým chụp lại hình khúc Include thư viện bên cái Snukls.com.au3 để iêm xem thử.
     
  6. thien ho

    thien ho Thành viên
    • 18/23

    Tham gia ngày:
    24/5/17
    Bài viết:
    62
    Đã được thích:
    42
    cái httprequest của mình là ver 1 cái đó update hôm 1/6
     
  7. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Thým chụp hình hoặc đăng code khúc Include bên Snukls.com.au3 để iêm xem thử nào :v
     
  8. thien ho

    thien ho Thành viên
    • 18/23

    Tham gia ngày:
    24/5/17
    Bài viết:
    62
    Đã được thích:
    42
  9. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    oé, thým bỏ 2 dòng Include _HttpRequest với _HttpRequest1 đi, cái Facebook.au3 nó Inlcude sẵn _HttpRequest rồi mà :v :|
     
  10. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...