2013-03-13 15 views
8

Tôi đang cố truy xuất các tweet công khai từ ứng dụng phía máy chủ, sử dụng application-only authentication (không có ngữ cảnh người dùng).Xác thực chỉ ứng dụng API Twitter (với TweetSharp)

Các mã sau hoạt động tốt:

var service = new TwitterService("<consumer key>", "<consumer secret>"); 
service.AuthenticateWith("<access token>", "<access token secret>"); 

var options = new ListTweetsOnUserTimelineOptions { ScreenName = "billgates" }; 

foreach (var tweet in service.ListTweetsOnUserTimeline(options)) 
    Console.WriteLine(tweet.Text); 

Tuy nhiên tôi thu thập từ sơ đồ này mà nó không phải là cần thiết để cung cấp access token/bí mật:

Application-only authentication

Tuy nhiên khi tôi xóa cuộc gọi đến AuthenticateWith, ListTweetsOnUserTimeline trả về giá trị rỗng.

Đó là giới hạn của thư viện, nếu không, tôi có thể làm như thế nào?

EDIT

Aas xa như tôi có thể nói, đây gọi là GET statuses/user_timeline phương pháp mà nên hỗ trợ xác thực ứng dụng duy nhất, theo documentation:

phương pháp API hỗ trợ hình thức xác thực sẽ chứa hai giới hạn tốc độ trong tài liệu của họ, một giới hạn cho mỗi người dùng (đối với xác thực người dùng ứng dụng) và một cho mỗi ứng dụng (đối với hình thức xác thực ứng dụng này)

Phương thức GET statuses/user_timeline có 2 giới hạn được hiển thị trong tài liệu của nó.

+1

bất kỳ may mắn nào với phương pháp này? – cDima

+0

Đối với những người quan tâm, vấn đề trên GitHub: https://github.com/danielcrenna/tweetsharp/issues/80 –

Trả lời

1

Tôi nghĩ điều này không phải là giới hạn của thư viện mà là giới hạn của API Twitter.

Theo như tôi biết, phương thức ListTweetsOnUserTimeline() sử dụng các cuộc gọi API trạng thái/user_timeline.

GET statuses/user_timeline

Như bạn thấy, cuộc gọi này yêu cầu xác thực.

Bạn có thể thử sử dụng API phát trực tuyến để nhận trạng thái. Tôi không thể giúp bạn ở đây vì tôi chỉ có kinh nghiệm về luồng người dùng chứ không phải công khai.

Public streams

Bên cạnh đó, TweetSharp có một số vấn đề với những con suối, tôi đã phải chuyển sang thư viện Linq2Twitter.

+0

Tôi nghĩ rằng phương pháp này sẽ hỗ trợ auth ứng dụng chỉ, mà tôi đoán nó là một hình thức xác thực, do đó các ' Xác thực: Bắt buộc' (xem các chỉnh sửa của tôi trong câu hỏi). –

+0

Từ những gì tôi có thể đọc được, tôi không tin rằng bạn có thể sử dụng luồng mà không cần xác thực với người dùng. – KronoS