@@ -47,7 +47,8 @@ Příklady použití pro další HTTP metody najdete v [dokumentaci].
47
47
48
48
## Použití session
49
49
50
- Hlavně v budoucnu se nám bude hodit použití tzv. * session* .
50
+ Hlavně v budoucnu se nám bude hodit použití tzv.
51
+ [ * session* ] ( http://docs.python-requests.org/en/master/user/advanced/#session-objects ) .
51
52
52
53
Session má několik výhod.
53
54
První je, že využívá na pozadí jedno otevřené HTTP spojení a poskytuje tak
@@ -75,7 +76,7 @@ k testování HTTP dotazů:
75
76
## Twitter API
76
77
77
78
Pro reálné použití si ukážeme, jak se dá pomocí requests získat seznam tweetů.
78
- Z Twitteru nebudeme samozřejmě nic parsovat, ale použijeme jejich [ API] .
79
+ Nebudeme samozřejmě nic parsovat z HTML stránek , ale použijeme [ API Twitteru ] .
79
80
80
81
``` pycon
81
82
>>> r = session.get(' https://api.twitter.com/1.1/search/tweets.json' )
@@ -87,9 +88,11 @@ Jak můžete vidět v odpovědi, Twitter API neumožňuje data číst bez autent
87
88
Jak se autentizovat byste při troše hledání našli v dokumentaci, ale protože
88
89
tu nevyučujeme úvod do OAuthu, ale Python, rozhodli jsme se vám to zjednodušit.
89
90
90
- Po přihlášení na Twitter (pokud nemáte účet, můžete si vytvořit nějaký * dummy*
91
- účet, ale budete potřebovat ověřitelné telefonní číslo)
92
- jděte na [ apps.twitter.com] a vytvořte aplikaci (URL si můžete vymyslet).
91
+ Nemáte-li na Twitter účet, vytvořte si ho. Můžete vytvořit nějaký * dummy* účet,
92
+ který dál nebudete používat. Budete ale potřebovat ověřitelné telefonní číslo.
93
+
94
+ Po přihlášení na Twitter jděte na [ apps.twitter.com] a vytvořte aplikaci
95
+ (URL si můžete vymyslet, třeba ` http://invalid ` ).
93
96
Po vytvoření najdete na kartě * Keys and Access Tokens* ** API Key** a ** API Secret** .
94
97
Pozor, jedná se prakticky o hesla k vašemu Twitter účtu,
95
98
a proto by je nikdo kromě vás neměl vidět.
@@ -133,7 +136,8 @@ hlavičky.
133
136
` requests.auth.HTTPBasicAuth ` zde dle specifikace zakóduje jméno a heslo pomocí
134
137
algoritmu base64 a přidá hlavičku ` Authorization ` .
135
138
136
- Ve skutečnosti je základní HTTP přihlášení tak běžné, že lze použít zkratku:
139
+ Základní HTTP přihlášení je tak běžné, že pro něj Requests mají zkratku –
140
+ místo ` HTTPBasicAuth ` se dá použít jen dvojice (jméno, heslo):
137
141
138
142
``` pycon
139
143
>>> r = session.post(' https://api.twitter.com/oauth2/token' ,
@@ -153,7 +157,8 @@ ale je možné nastavit autentizační funkci pro celou session.
153
157
>>> session.auth = bearer_auth
154
158
```
155
159
156
- Pak už by mělo API fungovat:
160
+ Pak už by mělo API fungovat.
161
+ Použijeme [ API pro vyhledávání tweetů] [ Search API ] :
157
162
158
163
``` pycon
159
164
>>> r = session.get(
@@ -167,7 +172,7 @@ Once a framework decides to abstract the HTML layer from you. Customizing your U
167
172
...
168
173
```
169
174
170
- Zde je pro zjednodušení k dispozici celá funkce pro vytvoření autentizované
175
+ Zde je pro zjednodušení k dispozici celá funkce pro vytvoření autentizované
171
176
* session* :
172
177
173
178
``` python
@@ -190,12 +195,13 @@ def twitter_session(api_key, api_secret):
190
195
return session
191
196
```
192
197
193
- [ API ] : https://dev.twitter.com/rest/public
198
+ [ API Twitteru ] : https://dev.twitter.com/rest/public
194
199
[ apps.twitter.com ] : https://apps.twitter.com/
200
+ [ Search API ] : https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets.html
195
201
196
202
### GitHub API
197
203
198
- Podíváme se i na GitHub API, které má jednodušší autentizaci (od GitHubu přímo
204
+ Podíváme se i na [ GitHub API] , které má jednodušší autentizaci (od GitHubu přímo
199
205
získáte token). Stačí jít do [ nastavení] a vyrobit nový token
200
206
(zatím není třeba zaškrtávat žádná oprávnění).
201
207
Token je opět třeba patřičně chránit.
@@ -217,7 +223,7 @@ Tímto kódem lze například získat popis přihlášeného uživatele, tedy se
217
223
```
218
224
219
225
> [ note]
220
- > Všimněte si hlavičky ` User-Agent ` . Ta je potřeba při komunikaci s GitHub API
226
+ > Všimněte si hlavičky ` User-Agent ` . Ta je potřeba při komunikaci s GitHub API
221
227
> explicitně nastavit. Nastavení na objektu session zajistí, že tato hlavička
222
228
> bude ve všech požadavcích.
223
229
@@ -256,6 +262,7 @@ My ale věříme, že ji odebrat nechcete :)
256
262
257
263
[ nastavení ] : https://github.com/settings/tokens
258
264
[ Dokumentace ] : https://developer.github.com/v3/
265
+ [ GitHub API ] : https://developer.github.com/v3
259
266
260
267
261
268
### Chraňte své tokeny
@@ -279,7 +286,8 @@ A následně konfiguraci načtete pomocí modulu
279
286
``` pycon
280
287
>>> import configparser
281
288
>>> config = configparser.ConfigParser()
282
- >>> config.read(' auth.cfg' )
289
+ >>> with open (' auth.cfg' ) as f:
290
+ ... config.read_file(f)
283
291
>>> config[' twitter' ][' key' ]
284
292
D4HJp6PKmpon9eya1b2c3d4e5
285
293
```
@@ -288,6 +296,9 @@ Do souboru `.gitignore` pak musíte přidat název ignorovaného souboru, např.
288
296
289
297
auth.cfg
290
298
299
+ Ověřte si, že git soubor ` auth.cfg ` opravdu ignoruje, t.j. soubor se neukáže
300
+ ve výstupu ` git status ` .
301
+
291
302
Jelikož ostatní tento konfigurační soubor neuvidí,
292
303
je vhodné jim vysvětlit, jak takový soubor (s jejich údaji) vytvořit.
293
304
Můžete například vložit do gitu soubor ` auth.cfg.sample `
0 commit comments