First create a table to hold our timeline....
1: CREATE TABLE TwitterArchive
2: ( 3: created_at NVARCHAR(30),4: id INT PRIMARY KEY,
5: [text] NVARCHAR(140), 6: source NVARCHAR(100), 7: truncated NVARCHAR(5),8: in_reply_to_status_id INT,
9: in_reply_to_user_id INT,
10: favorited NVARCHAR(5),11: status_Id INT,
12: statuses_Id INT
13: );This script will archive all of the authenticating users timeline a page at a time. Make adjustments to this script as your situation dictates.
1: DECLARE @xml XML,
2: @handle INT,
3: @page INT,
4: @optional NVARCHAR(10),5: @rowcount TINYINT;
6:
7: SET @page = 1;
8:
9: -- Turn of resultsets from Tweet-SQL
10: EXEC dbo.tweet_cfg_resultset_send 0;
11:
12: -- Set the optional parameter to request page 1
13: SET @optional = '?page=' + CAST(@page AS NVARCHAR(4));
14: -- Get page 1 of your timeline
15: EXEC dbo.tweet_sts_user_timeline null, @optional, @xml OUTPUT;
16: SET @rowcount = 20;
17:
18: WHILE (@rowcount = 20) -- While we still have results to deal with
19: BEGIN
20: -- Prepare an xml document
21: EXEC sp_xml_preparedocument @handle OUTPUT, @xml;
22:
23: -- Insert the page into a table
24: INSERT INTO dbo.TwitterArchive
25: ( 26: created_at, 27: id, 28: [text], 29: source, 30: truncated, 31: in_reply_to_status_id, 32: in_reply_to_user_id, 33: favorited, 34: status_Id, 35: statuses_Id 36: )37: SELECT created_at,
38: id, 39: [text], 40: source, 41: truncated, 42: in_reply_to_status_id, 43: in_reply_to_user_id, 44: favorited, 45: status_Id, 46: statuses_Id47: FROM OPENXML (@handle, '/statuses/status', 2)
48: WITH
49: ( 50: created_at NVARCHAR(30),51: id INT,
52: [text] NVARCHAR(140), 53: source NVARCHAR(100), 54: truncated NVARCHAR(5),55: in_reply_to_status_id INT,
56: in_reply_to_user_id INT,
57: favorited NVARCHAR(5),58: status_Id INT,
59: statuses_Id INT
60: );61:
62: -- Get the rowcount, when < 20 then we have the last page
63: SET @rowcount = @@ROWCOUNT;
64: -- Which page have we done?
65: PRINT 'Archived page ' + CAST(@page AS NVARCHAR(4));
66: -- destroy the xml document
67: EXEC sp_xml_removedocument @handle;
68: -- Increment the page count
69: SET @page = @page + 1;
70: -- Setup the optional parameter
71: SET @optional = '?page=' + CAST(@page AS NVARCHAR(4));
72: -- Wait for a bit...
73: WAITFOR DELAY '00:00:05';
74: -- Get the next page
75: EXEC dbo.tweet_sts_user_timeline null, @optional, @xml OUTPUT;
76: END
77:
78: -- Turn resultsets from Tweet-SQL back on as appropriate
79: EXEC dbo.tweet_cfg_resultset_send 1;
SQL Server Management Studio will return something like the below on completion.
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 1
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 2
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 3
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 4
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 5
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 6
200 OK: everything went awesome.
(20 row(s) affected)
Archived page 7
200 OK: everything went awesome.
(9 row(s) affected)
Archived page 8
200 OK: everything went awesome.
Blogged with the Flock Browser