рдХрднреА-рдХрднреА рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреА рд╣реИред рдХрдИ рдмрдбрд╝реА рд╕рд╛рдЗрдЯреЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╡реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреЛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЙрдирдХреА рдирд╡реАрдирддрдо рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реНрдЯреИрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
1. рдПрдХ рдирдпрд╛ рдЖрд╡реЗрджрди рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ
рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЗрд╕реЗ StackApps рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рдо рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ
stackapps.com/apps/oauth/register рдФрд░ рдЙрди рд╕рднреА рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рднрд░реЗрдВ рдЬреЛ
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдореЗрд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд╝реАрд▓реНрдб рднрд░реЗ:
"рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб OAuth рдлрд╝реНрд▓реЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ" рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдпрд╣ OAuth рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдЕрдиреНрдпрдерд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЬрдм рд╕рдм рдХреБрдЫ рднрд░ рдЬрд╛рдП, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдмрдВрдзрди рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВред рд╡рд╣рд╛рдВ рд╣рдореЗрдВ рдХрдИ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВрдЧреА (рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдбреА, рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реАрдХреНрд░реЗрдЯ, рдХреА)ред рдЗрдирдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯрдЖрдИрдб рдФрд░ рдХреА рд╣реА рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИрдВред рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкрд░ рд╣рдо рдкрдВрдЬреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
2. рдЖрд░рдВрдн рдХрд░рдирд╛
рдПрдХ рдирдИ рд╕реНрд╡рдЪреНрдЫ HTML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЙрд╕рдореЗрдВ рддреБрд░рдВрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:
<script type='text/javascript' src='https://api.stackexchange.com/js/2.0/all.js'></script>
рдЕрдм рд╣рдо рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдВрдЬреА рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
SE.init({ clientId: 1,
рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреЗрдЬ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдЕрд▓рд░реНрдЯ рдкреЙрдк рдЕрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ - рдХреНрдпрд╛
рдЕрдирдЪреЗрдХ рдХрд┐рдП рдЧрдП рдЪреИрдирд▓ рдкрд░ рдРрд╕рд╛ рд╣реА рдХреБрдЫ
рд╣реИ рд╡рд░реНрддрдорд╛рди рдбреЛрдореЗрди рдХреЗ рддрд╣рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ? рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИ, рддреЛ рдЪреИрдирд▓ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪреЗрдВред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
3. рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЛ рдмрджрд▓реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ: рд╣рдо (рдбреЗрдЯрд╛) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ SE.init рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╕рдлрд▓ рдЖрд░рдВрднреАрдХрд░рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
function auth(data) {} ... SE.init({ ... complete: auth });
рдЕрдм рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:
SE.authenticate({ success: function(data) { alert(' !'); },
рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ
рдСрд░реНрдЯ рдСрдл рдмреЙрдбреА
(рдбреЗрдЯрд╛) рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рд╣реИред рдЕрдм, рдкрд╣рд▓реА рдмрд╛рд░ рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдкреЙрдкрдЕрдк рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдореЗрдВ, рдЖрдкрдХреЛ рджреЛ рдмрдЯрди рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ - рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдФрд░ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдмрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд▓реЙрдЧ рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд╣рдореЗрдВ рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЯреЛрдХрди рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рдмрдЪрд╛ рд▓реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ - рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВ рдЬреЛ рдЗрди рдмрд╣реБрдд рдЯреЛрдХрди рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗ:
var tokens = null; ... SE.authenticate({ success: function(data) { alert(' !'); tokens = data; }, ... ...
рдЕрдм рдЬрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рд╣рдо рд╕реАрдзреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
4. рдкреНрд░реЛрдлрд╛рдЗрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдПрдкреАрдЖрдИ рд╣рдореЗрдВ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╢реНрди рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
https:
рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА (рдЬреИрд╕реЗ рд░реЗрдЯрд┐рдВрдЧ рдпрд╛ рдмреИрдЬ) рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдХрд┐ рд╕реНрдЯреИрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрд┐рд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред StackOverflow рдФрд░ MathOverflow рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдареАрдХ рд╣реИред рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ:
{"error_id":401,"error_message":"This method requires an access_token","error_name":"access_token_required"}
рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: api.stackexchange.com/docs/error-handling
рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдкрд╣реБрдБрдЪ рдЯреЛрдХрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрддреЗ рдкрд░ рдЗрди рдЯреЛрдХрди рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВрдЧреЗ:
https:
рдпрд╣рд╛рдВ tokens.accessToken рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдВрдЬреА рд╣реИ, рдФрд░ рд╡рд┐рдзрд┐ рдХреЙрд▓рдмреИрдХ рд╣реИ рдЬрд┐рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрд╡рд╛рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
{ "items": [ { "badge_counts": { "bronze": 5, "silver": 0, "gold": 0 }, "account_id": 2760756, "is_employee": false, "last_modified_date": 1396214504, "last_access_date": 1396268249, "reputation_change_year": 62, "reputation_change_quarter": 62, "reputation_change_month": 62, "reputation_change_week": 55, "reputation_change_day": 10, "reputation": 63, "creation_date": 1368447422, "user_type": "registered", "user_id": 2377708, "age": 18, "location": "Belarus", "link": "http://stackoverflow.com/users/2377708/alex-saskevich", "display_name": "Alex Saskevich", "profile_image": "http://i.stack.imgur.com/0Vz5q.jpg?s=128&g=1" } ], "has_more": false, "quota_max": 10000, "quota_remaining": 9905 }
рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдХрдард┐рди рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдКрдВрдЧрд╛ рдЬреЛ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдЯреИрдмрд▓реЗрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛:
function renderProfileData(data) { var items = data.items[0]; $("#reputation").text(items.reputation); $("#login").text(items.display_name); $("#bronze_badges").text(items.badge_counts.bronze); $("#silver_badges").text(items.badge_counts.silver); $("#gold_badges").text(items.badge_counts.gold); $("#profile_image").attr("src", items.profile_image); }
рд╕реВрдЪрдирд╛ рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ:
$.get("https://api.stackexchange.com/2.2/me?site=stackoverflow&key=YoUrAwEsOmEKey&access_token=YoUrSecretToKEn&callback=profile");
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рд╛:
5. рд╣рд╛рд▓ рдХреА рд╕реВрдЪрдирд╛рдПрдВ
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЕрдкрдард┐рдд рд╕рдВрджреЗрд╢реЛрдВ, рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣
read_inbox рд╣реИ ред рд╣рдордиреЗ рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдмреНрд▓реЙрдХ рдореЗрдВ рд░рдЦрд╛:
SE.authenticate({ scope: ['read_inbox'], ... });
рд╣рдо рдпрд╣рд╛рдБ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:
https:
рд╣рдо рд╣рд╛рд▓ рдХреА рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдо рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЕрдиреБрд░реЛрдз рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрддреНрддрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
{ "items": [ "site": { "styling": { "tag_background_color": "#FFF", "tag_foreground_color": "#000", "link_color": "#0077CC" }, "related_sites": [ { "relation": "meta", "api_site_parameter": "meta.reverseengineering", "site_url": "http://meta.reverseengineering.stackexchange.com", "name": "Reverse Engineering Meta Stack Exchange" }, { "relation": "chat", "site_url": "http://chat.stackexchange.com", "name": "Chat Stack Exchange" } ], "open_beta_date": 1364774400, "closed_beta_date": 1363651200, "site_state": "open_beta", "twitter_account": "StackReverseEng", "favicon_url": "http://cdn.sstatic.net/reverseengineering/img/favicon.ico", "icon_url": "http://cdn.sstatic.net/reverseengineering/img/apple-touch-icon.png", "audience": "researchers and developers who explore the principles of a system through analysis of its structure, function, and operation", "site_url": "http://reverseengineering.stackexchange.com", "api_site_parameter": "reverseengineering", "logo_url": "http://cdn.sstatic.net/reverseengineering/img/logo.png", "name": "Reverse Engineering", "site_type": "main_site" }, "is_unread": false, "creation_date": 1396197666, "notification_type": "badge_earned", "body": "You've earned the "Autobiographer" badge." } ], "has_more": true, "quota_max": 10000, "quota_remaining": 9994 }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рд╣рдореЗрдВ рддреБрд░рдВрдд рд╕реВрдЪрдирд╛ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
function renderNotifications(data) { var items = data.items; var html = "<center> </center><br/>"; for (var i = 0; i < items.length; i ++) { var site = items[i].site.name; var icon = items[i].site.icon_url; var body = items[i].body; var str = "<div class = 'item'><img src = '" + icon + "' height = '14px' /> " + site + ": " + body + "</div>"; html += str; } $("#notifications").html(html); }
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд░реЗ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдкреГрд╖реНрда рдиреЗ рдЗрд╕ рдЕрдВрддрд┐рдо рд░реВрдк рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛:
6. рдФрд░ рдЕрдм рдХреНрдпрд╛?
рд╕реНрдЯреИрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреАрдЖрдИ рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕реВрдЪрдирд╛рдПрдВ рдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдкреНрд░рд╢реНрди, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рдЯреИрдЧ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЙрдирдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкреНрд░рд╢реНрди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓, рдШрдЯрдирд╛рдУрдВ рдФрд░ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдмрд╛рдд рдХрд░реЗрдВ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдореЗрдВ рдЖрдк рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдгреЛрдВ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╣рд╛рдВ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрдХ рдЖрд╡реЗрджрди рдЬреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд╕ рд╣рдЬрд╛рд░ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╢реЗрд╖ рд╕рдВрдЦреНрдпрд╛ рдХреЛ
рдХреЛрдЯрд╛-рд╢рд╡рджрд╛рд╣ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ JSON рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, StackExchange рдПрдХ рдХрдВрд╕реЛрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рддрд╣рдд рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рд┐рдВрдХ: