summaryrefslogtreecommitdiff
path: root/tests/oauth/README
blob: 13f1d0c039678a82bd542db8dfe2d8726d8b2ca3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Some very rough test scripts for hitting up the OAuth endpoints.

These instructions assume you understand the basics of how OAuth
works. You may want to read up about it first. Here are some good
resources for learning about OAuth:

    http://hueniverse.com/oauth/
    http://tools.ietf.org/html/rfc5849

To use these scripts (and OAuth in general) first you will need to
register and OAuth client application with your StatusNet instance:

    http://example.status.net/settings/oauthapps

oauth.ini
---------

Using oauth.ini.sample as a guide, put your StatusNet OAuth endpoints
and consumer key and secret in a file called oauth.ini and save it
in the same directory as these scripts.

fetch_temp_creds.php
--------------------

Will fetch a request token, token secret and a URL to authorize the
token.  Once you authorize the request token, you can exchange it
for an access token.

example usage:

    $ php fetch_temp_creds.php
    Request Token
       - oauth_token        = 89d481e376edc622f08da5791e6a4446
       - oauth_token_secret = 6d028bcd1ea125cbed7da2f254219885
    Authorize URL
        http://example.status.net/api/oauth/authorize?oauth_token=89d481e376edc622f08da5791e6a4446

    Now paste the Authorize URL into your browser and authorize your temporary credentials.

fetch_token_creds.php
---------------------

After you have authorized your request token, you will be presented
with a verifier code, or pin, in your browser, which you will need
to get an access token. Make sure you copy it into a text buffer
or write it down or something. Then call fetch_token_credentials.php
to exchange your temporary credentials for real token credentials.

example usage:

    $ php fetch_token_creds.php -t 89d481e376edc622f08da5791e6a4446 -s 6d028bcd1ea125cbed7da2f254219885 -v 305162
    Access Token
       - oauth_token        = 9b354df102d8e2b4621122c85d8d045c
       - oauth_token_secret = 1800a88f1574b47d595214a74e5b1ec5


oauth_verify_credentials.php
----------------------------

Now you should have real token credentials (an OAuth access token)
and you can access protected API resources. This is an example
script that calls /api/account/verify_credentials.xml.

example usage:

    $ php oauth_verify_creds.php -t 80305cd15c5c69834364ac02d7f9178c -s 673e3b2978b1b92c8edbfe172505fee1
    <?xml version="1.0" encoding="UTF-8"?>
    <user xmlns:statusnet="http://status.net/schema/api/1/">
     <id>23</id>
     <name>zach</name>
     <screen_name>zach</screen_name>
     <location></location>
     <description></description>
     <profile_image_url>http://example.status.net/theme/default/default-avatar-stream.png</profile_image_url>
     <url></url>
     <protected>false</protected>
     <followers_count>0</followers_count>
     <profile_background_color></profile_background_color>
     <profile_text_color></profile_text_color>
     <profile_link_color></profile_link_color>
     <profile_sidebar_fill_color></profile_sidebar_fill_color>
     <profile_sidebar_border_color></profile_sidebar_border_color>
     <friends_count>0</friends_count>
     <created_at>Thu Sep 30 23:11:00 +0000 2010</created_at>
     <favourites_count>0</favourites_count>
     <utc_offset>0</utc_offset>
     <time_zone>UTC</time_zone>
     <profile_background_image_url></profile_background_image_url>
     <profile_background_tile>false</profile_background_tile>
     <statuses_count>4</statuses_count>
     <following>true</following>
     <statusnet:blocking>false</statusnet:blocking>
     <notifications>true</notifications>
     <status>
      <text>gar</text>
      <truncated>false</truncated>
      <created_at>Wed Oct 06 23:40:14 +0000 2010</created_at>
      <in_reply_to_status_id></in_reply_to_status_id>
      <source>web</source>
      <id>7</id>
      <in_reply_to_user_id></in_reply_to_user_id>
      <in_reply_to_screen_name></in_reply_to_screen_name>
      <geo></geo>
      <favorited>false</favorited>
      <statusnet:html>gar</statusnet:html>
     </status>
     <statusnet:profile_url>http://example.status.net/statusnet/zach</statusnet:profile_url>
    </user>

oauth_post_notice.php
---------------------

This is another test script that lets you post a notice via OAuth.

example usage:

    $ php oauth_post_notice.php -t 80305cd15c5c69834364ac02d7f9178c -s 673e3b2978b1b92c8edbfe172505fee1 -u 'Test test test...'
    <?xml version="1.0" encoding="UTF-8"?>
    <status xmlns:statusnet="http://status.net/schema/api/1/">
     <text>Test test test...</text>
     <truncated>false</truncated>
     <created_at>Fri Oct 08 02:37:35 +0000 2010</created_at>
     <in_reply_to_status_id></in_reply_to_status_id>
     <source>&lt;a href=&quot;http://banana.com&quot; rel=&quot;nofollow&quot;&gt;Banana&lt;/a&gt;</source>
     <id>8</id>
     <in_reply_to_user_id></in_reply_to_user_id>
     <in_reply_to_screen_name></in_reply_to_screen_name>
     <geo></geo>
     <favorited>false</favorited>
     <user>
      <id>23</id>
      <name>zach</name>
      <screen_name>zach</screen_name>
      <location></location>
      <description></description>
      <profile_image_url>http://example.status.net/statusnet/theme/default/default-avatar-stream.png</profile_image_url>
      <url></url>
      <protected>false</protected>
      <followers_count>0</followers_count>
      <profile_background_color></profile_background_color>
      <profile_text_color></profile_text_color>
      <profile_link_color></profile_link_color>
      <profile_sidebar_fill_color></profile_sidebar_fill_color>
      <profile_sidebar_border_color></profile_sidebar_border_color>
      <friends_count>0</friends_count>
      <created_at>Thu Sep 30 23:11:00 +0000 2010</created_at>
      <favourites_count>0</favourites_count>
      <utc_offset>0</utc_offset>
      <time_zone>UTC</time_zone>
      <profile_background_image_url></profile_background_image_url>
      <profile_background_tile>false</profile_background_tile>
      <statuses_count>5</statuses_count>
      <following>true</following>
      <statusnet:blocking>false</statusnet:blocking>
      <notifications>true</notifications>
      <statusnet:profile_url>http://example.status.net/statusnet/zach</statusnet:profile_url>
     </user>
     <statusnet:html>Test test test...</statusnet:html>
    </status>