2011-05-06 54 views
5

Về cơ bản cùng một vấn đề với câu hỏi này nhưng tìm kiếm một giải pháp bằng Python. How to work around Twitter OAuth?Bỏ qua Twitter OAuth

Lý tưởng nhất, tôi không muốn phải đi qua các vòng thiết lập một giao diện người dùng/đăng nhập và phụ trợ từ công việc tôi đang làm là cho mục đích nội bộ.

Tôi cũng muốn bỏ qua phần mà tôi cần chuyển hướng người dùng đến Twitter để được ủy quyền.

Cảm ơn

Trả lời

3

Bạn sẽ muốn sử dụng luồng OOB của Twitter. Này được giải thích độc đáo trong câu trả lời này

Twitter API - OOB Flow

+1

Lý tưởng nhất, tôi muốn quy trình có tương tác bằng không với người dùng. Luồng này vẫn yêu cầu đầu vào của mã PIN nếu Im không nhầm. – super9

+3

Làm cách nào để bạn có quyền truy cập vào tài khoản mà không có người dùng xác thực? – Acorn

+1

Tôi muốn luồng xác thực một chiều mà không có bất kỳ đầu vào nào từ người dùng. Tôi không bao giờ nói bất cứ điều gì về việc không được xác thực bởi người dùng. – super9

3

Vì vậy, đọc giữa các dòng một chút, bạn có một tài khoản twitter và một mật khẩu vì đây là nội bộ, do đó bạn không muốn đi với một quá trình auth yêu cầu người dùng tương tác với nó?

Ý tưởng đằng sau OAuth là bạn không bao giờ tìm ra mật khẩu của người dùng là gì; Tôi đồng ý rằng nếu tôi đúng về những gì bạn đang cố gắng để làm điều đó nó không phải là điều đúng. Luồng OOB do JohnD đề xuất có cùng vấn đề.

Nếu bạn có tài khoản/mật khẩu, bạn có thể làm việc trực tiếp với trang web, bằng cách sử dụng biểu mẫu đăng nhập và biểu mẫu tweet. Thật không may điều này có nghĩa là bạn không có quyền truy cập vào API (họ nuked xác thực cơ bản thông qua API năm ngoái) - tùy thuộc vào những gì bạn đang cố gắng để làm điều đó có thể hoặc không có thể là một vấn đề.

Chỉnh sửa:

Sử dụng OAuth và nhớ mã thông báo. Nó không bao giờ hết hạn, theo tài liệu API twitter và vì bạn có thể có một số tài khoản giới hạn mà bạn quan tâm, bạn chỉ có thể nhảy qua vòng lặp OAuth một lần cho mỗi tài khoản và bạn đã hoàn tất cho đến khi bạn cần một tài khoản khác. Bạn thậm chí có thể làm toàn bộ điều lập trình cho tên người dùng và mật khẩu, giả sử họ không dính một captcha trong đó tại một số điểm. Nhưng tôi nghi ngờ đặt cược tốt nhất của bạn là chỉ sử dụng OAuth và lưu trữ các thẻ.

+1

Đúng vậy. Cơ bản auth sẽ làm việc hoàn toàn tốt cho tôi, nhưng như bạn nói nó không được chấp nhận. Dữ liệu không được xác thực được hiển thị trong API không có tất cả thông tin. mà tôi cần. – super9

+0

@Nai Tôi nghĩ rằng bạn đang hơi say, sau đó. Bạn có thể sử dụng các biểu mẫu web công khai hoặc bạn có thể sử dụng một cái gì đó như OAuth. Tuy nhiên, lưu ý rằng bạn chỉ phải nhảy qua vòng lặp OAuth một lần cho mỗi tài khoản, vì mã thông báo không bao giờ hết hạn, vì vậy bạn chỉ có thể lưu vào bộ nhớ cache mã thông báo. Tôi sẽ cập nhật phản hồi của tôi để bao gồm điều đó. –

+0

Cảm ơn bạn đã xác nhận điều đó. lol – super9

0

Bạn có thể xem xét xem Mechanize. Nó tự động hóa hoạt động trình duyệt.

Vì vậy, bạn có thể cung cấp tên người dùng/mật khẩu cho tập lệnh của mình. Sau đó, tập lệnh sẽ chuyển các thông tin đăng nhập đó đến http://twitter.com/#!/login.

thông thường, nếu bạn đăng nhập theo cách thủ công từ trang web đó, phản hồi sẽ là một trang khác dựa trên việc thông tin đăng nhập bạn đã sử dụng có đúng hay không.

Điều tương tự ở đây: Dựa trên thông tin xác thực có chính xác hay không, phản hồi là một trang khác.

Sau đó, bạn có thể kiểm tra xem phản hồi có phải là trang "đăng nhập không thành công" hay trang "đã đăng nhập" hay không và thực hiện những gì bạn cần làm từ đó.

Hope this helps

1

Tôi chỉ tìm thấy this bash script mà làm việc, kiểm tra cá nhân, chỉ cần thay đổi --ssl---sslv3.

Nó dựa trên phương pháp xác thực đơn giản hơn được sử dụng trên mobile.twitter.com, bạn có thể sử dụng nguyên tắc tương tự để xử lý bằng cách sử dụng các mô-đun urllib2re.


Nếu không, bạn có thể xem xét để tựa vào một trang web như http://www.supertweet.net/

SuperTweet.net cung cấp một cơ chế an toàn sử dụng Basic Authentication với các API Twitter trong kịch bản của bạn và các ứng dụng Twitter khác. Đơn giản chỉ cần Sign-up qua Twitter để ủy quyền cho API MyAuth Proxy SuperTweet.net Application và sau đó gán một mật khẩu của bạn lựa chọn (không thực Twitter mật khẩu của bạn) mà ứng dụng của bạn có thể sử dụng với http://api.supertweet.net API.

chỉnh sửa: Tôi thấy bây giờ trang web này được trích dẫn trong một bài báo được liên kết trong một câu trả lời của How to work around Twitter OAuth?, nếu bạn đã đọc về nó bỏ qua phần này.

1

Nếu bạn đang sử dụng ứng dụng dành cho máy tính để bàn hoặc thiết bị di động, thì bạn có thể sử dụng xAuth. Từ góc độ người dùng, nó giống với xác thực cơ bản để nhận được thông tin đăng nhập OAuth ban đầu và không có các trang bên ngoài. Lưu ý rằng bạn phải được nhóm API Twitter phê duyệt để có quyền truy cập xAuth.

Các vấn đề liên quan