рдПрдЙрдЯрд╛ рд╕реБрд╕реНрдд рд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдзреЗрд░реИ рдмреЛрд░рд┐рдВрдЧ рд╕рд╛рдБрдЭ, рдо, рдкрд╛рддрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Habr рдПрдкреНрд▓рд┐рдХреЗрд╕рди, рдПрдХ рдкрдЯрдХ рдлреЗрд░рд┐ рдореИрд▓реЗ рдореЗрд░реЛ рдФрдВрд▓рд╛рд╣рд░реВ рдЭреБрдХрд╛рдПрдБ, рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐ред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВ рдЯрд┐рдкреНрдкрдгреА рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди, рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорддрджрд╛рди рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕реВрддреНрд░рд╣рд░реВ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдХрд┐рди рджреЗрдЦрд┐рдБрджреИрдирдиреН?
рдпреЛ рдирд┐рд░реНрдгрдп рдЧрд░рд┐рдпреЛ: рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗрд╣рд┐ рд╕рд╣рдЬ, рд╕реБрдЦрдж, рдЖрдлреНрдиреИ рдХреЗрд╣рд┐ рдЪрд╛рд╣рд┐рдиреНрдЫред Habr рдХреЛ рд▓рд╛рдЧреА рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рдЖрд╡реЗрджрди рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдХреЗ рд╣реЛ?
рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдмреБрдЭреНрди рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреЗрд╣реА рд╕реНрдХреНрд░рд┐рдирд╕рдЯрд╣рд░реВ рджрд┐рдиреНрдЫреБред
рдХреЗрд╣рд┐ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдпрд╕рд▓рд╛рдИ - рдХреЛред habr.com рдЖрд╡реЗрджрди
"рдЕрд╕реБрд╡рд┐рдзрд╛" рдХреЛ рд╕реВрдЪреА
- рддрдкрд╛рдИрдВрд▓реЗ реж рднрдиреНрджрд╛ рдлрд░рдХ рднрдПрдХреЛ рдкреНрд░рдХрд╛рд╢рдирд▓рд╛рдИ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди
- рдпреЛ рд╕рдзреИрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд▓реЗрдЦреНрди рд╕рдореНрднрд╡ рдЫреИрди
- рдорддрджрд╛рдирд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди
- рдЧрд╛рдврд╛ рд╡рд┐рд╖рдпрд╡рд╕реНрддреБрдорд╛ рд╕реВрддреНрд░рд╣рд░реВ рджреЗрдЦрд┐рдБрджреИрдирдиреН (рдХрд╛рд▓реЛрдорд╛ рдХрд╛рд▓реЛ)
- рд╕рдмреИ рдмреБрдХрдорд╛рд░реНрдХрд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЫреИрдирдиреН
рд╣реЛ, рдПрдк рдЧрдд рд╡рд░реНрд╖ рдЕрдЧрд╕реНрдЯрджреЗрдЦрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рддрд░ рдпреЛ рдЕрдЭреИ рдЦрд░рд╛рдм рдЫред рд╕рд╛рдорд╛рдиреНрдп рдорд╛, рдпреЛ рддрдп рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рднрд╛рдЧ рдПрдХред рдкрд╣реБрдБрдЪ рдЦреЛрдЬреНрджреИред
рджреНрд░реБрдд Google рдХреНрд╡реЗрд░реА "habrahabr API" рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдзреЗрд░реИ рдкреБрд░рд╛рдиреЛ рднрдЗрд╕рдХреЗрдХреЛ рдмрддрд╛рдЙрдБрдЫ
рдпреЛ PHP рд╣реЛ рднрдиреНрдиреЗ рддрдереНрдпрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджреИ, рддрд▓ рд╕реНрдХреНрд░реЛрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкрдвреНрдиреБрд╣реЛрд╕реН:
рдЖрд╡реЗрджрди рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ
рдлрд╛рдЗрджрд╛ рдЙрдард╛рдЙрдБрджреИ
рдпреЛ рдлрд╛рд░рдо Habrahabr рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдирдпрд╛рдБ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рд╕рд╛рд░ рд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ API рдЪрд╛рд╣рд┐рдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓рд╛рдИ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдкреНрд░рд╢реНрди рдЫреИрди, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫред рд╣рд╛рдореА рдПрдЙрдЯрд╛ рдкрддреНрд░ рд▓реЗрдЦреНрдЫреМрдВ (рд╕рдВрдХреНрд╖рд┐рдкреНрдд):
рд▓реЗрдЦрди
PWA рдорд╛ рдЖрдзрд╛рд░рд┐рдд Habr рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдЖрд╡реЗрджрди рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдЗрдЪреНрдЫрд╛ рдЫред рдпрд╕рдХрд╛ рдзреЗрд░реИ рдХрд╛рд░рдг рдЫрдиреНред
рдкрд╣рд┐рд▓реЛ рд░ рд╕рдмреИрднрдиреНрджрд╛ рд╕реНрдкрд╖реНрдЯ: рдПрдиреНрдбреНрд░реЛрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрджреИрдиред
рджреЛрд╕реНрд░реЛ: рддреНрдпрд╣рд╛рдБ рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЪреАрдЬрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рдиреЗрдЯрд┐рдн рд╕реВрдЪрдирд╛рд╣рд░реВ рдЫреИрдирдиреН рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЗрдореЗрд▓ рдорд╛рд░реНрдлрдд рдЖрдЙрдБрдЫрдиреН (рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐)ред
рддреЗрд╕реНрд░реЛ: рдореЗрд░реЛ рд░реБрдЪрд┐рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреЗрд░, рдорд▓рд╛рдИ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреЗ рд╡реНрдпрдХреНрддрд┐/рд╣рдмрд╣рд░реВрдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд╛рдЪрди (рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдпрдХреЛ рд░реВрдкрдорд╛)ред
рдЬрд╡рд╛рдл, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдзреЗрд░реИ рд╕реБрдЦрдж рдерд┐рдПрди, рддрд░ рдХрдореНрддрд┐рдорд╛ рдЗрдорд╛рдирджрд╛рд░:
рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рд╛рдореНрд░реЛ API рдорд╛ рдкрд╣реБрдБрдЪ рд╣рд╛рд▓ рдЙрдкрд▓рдмреНрдз рдЫреИрдиред рд╣рд╛рдореА API рд▓рд╛рдИ рдЕрдиреНрддрд┐рдо рд░реВрдк рджрд┐рдПрдкрдЫрд┐ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдЙрдБрдЫреМрдВ, рддрд░ рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдЭреИ рдХреБрдиреИ рдареНрдпрд╛рдХреНрдХреИ рдорд┐рддрд┐рд╣рд░реВ рдЫреИрдирдиреН, рдХрд┐рдирднрдиреЗ рд╣рд╛рдореА рдЕрд╣рд┐рд▓реЗ рдЕрдиреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╡реНрдпрд╕реНрдд рдЫреМрдВред
"рд╣реБрдиреНрдЫ рдХреЗрд╣рд┐ рд╕рдорд╕реНрдпрд╛ рдЫреИрди! рд╣рд╛рдореА рдХреЗрд╣рд┐ рд▓рд┐рдПрд░ рдЖрдЙрдЫреМрдВ!" - рдореИрд▓реЗ рдЖрдлреИрд▓рд╛рдИ рднрдиреЗ рд░ рд╣реЗрд░реНрди рдерд╛рд▓реЗред
рднрд╛рдЧ рджреБрдИред рдЧрд╣рд┐рд░реЛ рдЙрддреНрдЦрдирдиред
рддрд░реНрдХрдХреЛ рдЖрдзрд╛рд░рдорд╛, рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗ, рддреНрдпрд╕рдХреЛ API рдорд╛ рдкрд╣реБрдБрдЪ рдЫ, рд░ рдпреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рд╣рд╛рд░реНрдбрд╡рд╛рдЗрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реМрдВред
рд╣рд╛рдореА рдЯреНрд░рд╛рдлрд┐рдХрдХреЛ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрджреИрдЫреМрдВ, Wireshark рд╣рд╛рдореНрд░реЛ рд░реЛрдЬрд╛рдЗ рд╣реЛред рдХреЗрд╣рд┐ рдкреАрдбрд╛ рдмрд┐рдирд╛ рд╣реЛрдЗрди, рдлреЛрдирд▓рд╛рдИ рдбреЗрд╕реНрдХрдЯрдк рдХрдореНрдкреНрдпреБрдЯрд░ рдорд╛рд░реНрдлрдд рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдЬрдбрд╛рди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЦреЛрд▓реНрдЫреМрдВ рд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реЗрд░реНрдЫреМрдВ:
рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдХреЗрд╣рд┐ рд╕реНрдкрд╖реНрдЯ рдЫреИрди
рд╣реЛ, рд╕рдмреИ рдХреБрд░рд╛ рдИрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЫ, рддрд░ рдо рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрд╕рдБрдЧ рдЧрдбрдмрдб рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдиред рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рднрд┐рддреНрд░ рд╣реЗрд░реНрдиреБ рдкрд░реНрдЫред
рд╡рд┐рдШрдЯрд┐рдд .apk, рд╣реЗрд░реНрди рд╕реБрд░реБ рдЧрд░реМрдВред рдХреБрдиреИ рдкрдирд┐ API рд▓рд╛рдИ рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ? рд╕рд╣рд┐, рдЕрдиреНрддрдмрд┐рдиреНрджреБ, рд╕рдмреИ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЬрд╛рдиреЗ рдард╛рдЙрдБред рдпреЛ рд╕рдореНрднрд╡рддрдГ http(рд╣рд░реВ) рд╣реЛ, "https://" рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ:
рдлрд╛рдЗрд▓рдорд╛ AuthLinkManager.smali
рд╣рд╛рдореА рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВ
.field OAUTH:Ljava/lang/String; = "https://habrahabr.ru/auth/o/%s/"
.field OAUTH_PARAMS:Ljava/lang/String; = "?client_id=%s&response_type=token&redirect_uri=%s"
.field OAUTH_REDIRECT_URL:Ljava/lang/String; = "http://cleverpumpkin.ru"
рдпреЛ рдПрдиреНрдбреНрд░реЛрдЗрдб рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдб рд╣реЛ (Dalvik VM), рдорд╛рдирд┐рд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдмреБрдЭреНрди рдпреЛрдЧреНрдп рдЫреИрди, рддрд░ рдЕрдЭреИ рдкрдирд┐ рдзреЗрд░реИ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдгред рдпреА рддреАрди рд╕реНрдерд┐рд░рд╣рд░реВ, рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реА рд░ рдирд╛рдо, рд╕рд╛рдереИ GitHub рднрдгреНрдбрд╛рд░, рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╣реБрдБрдЪ рдЯреЛрдХрди рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред GET
.
рдердк рд╣реЗрд░реМрдВред рдЦреЛрдЬреАрдорд╛ рдЕрд░реНрдХреЛ рдлрд╛рдЗрд▓ рдЖрдЙрдБрдЫ NetworkModule.smali
:
const-string v0, "https://habr.com/api/v1/"
рд░ рдпрд╣рд╛рдБ рддрдкрд╛рдЗрдБрдХреЛ рдЕрдиреБрд░реЛрдз рд╕рдВрдЧ рдЬрд╛рдиреЗ рдард╛рдЙрдБ рдЫ!
рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдХреНрд▓рд╛рдЗрдиреНрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдареАрдХрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддреНрдпрд╣рд╛рдБ рдПрдХ рдорд╛рддреНрд░ рдХреБрд░рд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдмрд╛рдБрдХреА рдЫ - client_id
, рдЬреБрди рд╕рдореНрднрд╡рддрдГ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛред
рдпрджреНрдпрдкрд┐, рд╕реНрд░реЛрдд рдХреЛрдбрдорд╛ рдпреЛ рдкрд╛рда рдЦреЛрдЬреНрджрд╛ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдПрди...
рддрд░ рдЕрдЪрд╛рдирдХ рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓рдорд╛ рдореЗрд░реЛ рдЖрдБрдЦрд╛рд▓реЗ рдХреЗрд╣реА рд░реЛрдЪрдХ рд░реЗрдЦрд╛рд╣рд░реВ рд╕рдорд╛рддреНрдпреЛ:
const-string p8, "log-tag"
invoke-static {p8, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
рдпреЛ, рддрдкрд╛рдИрд▓реЗ рдмреБрдЭреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд▓рдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реЛред рддрд░ рдХреЗ рд░реЗрдХрд░реНрдбрд┐рдЩ?
рднрд╛рдЧ рддреАрдиред рдпреА рд▓рдЧрд╣рд░реВ рд╣реБрдиреН!
рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМ adb logcat
рдЖрд╡реЗрджрди рд▓рдЧрд╣рд░реВ рд╣реЗрд░реНрдиред
рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдкрдорд╛, рд▓рдЧрд╣рд░реВ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рднрдиреНрджрд╛ рдмрдвреА рд╡рд┐рд╕реНрддреГрдд рднрдпреЛред
рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдХреБрд░рд╛ рдорд╛рддреНрд░реИ рдЫреИрди client_id
рддрд░ редред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛/рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рд░ рд▓рдЧрдЗрди ╨╕ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╛рджрд╛ рдкрд╛рдардорд╛!
рдХреЗрд╣реА рд╖рдбреНрдпрдиреНрддреНрд░ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрд▓рдЧрдЗрди рд░ рдкрд╛рд╕рд╡рд░реНрдбрдХреЛ рдорд╛рддреНрд░ рдЙрдкрд╕реНрдерд┐рддрд┐рд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдХреБрд░рд╛рд▓рд╛рдИ рд╣рд╛рдирд┐ рдЧрд░реНрджреИрди, рдХрд┐рдирдХрд┐ рдпреА рд▓рдЧрд╣рд░реВ рдХреЗрд╡рд▓ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░ рд╡рд╛ рдЬрдбрд╛рди рдорд╛рд░реНрдлрдд рдкрдвреНрди рд╕рдХрд┐рдиреНрдЫред adb
ред рддрд░ Habr рдкрдвреНрдиреЗ рдорд╛рдирд┐рд╕рд╣рд░реВ рдмреАрдЪрдорд╛ рдПрдиреНрдбреНрд░реЛрдЗрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рдбрд┐рдмрдЧрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реЗрдХреЛ рд╣реБрди рд╕рдХреНрдЫ рднрдиреНрдиреЗ рддрдереНрдпрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╣реБрдиреНрдЫред
рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдПрдпрд░рдкреЛрд░реНрдЯрдорд╛ "рдирд┐рдГрд╢реБрд▓реНрдХ рдЪрд╛рд░реНрдЬрд┐рдЩ" рд▓реЗ рдЦрд╛рддрд╛ рдЪреЛрд░реА рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдХрд╕рд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ?
рдпреА рд▓рдЧрд╣рд░реВрдмрд╛рдЯ рд╣рд╛рдореА рдирд┐рдХрд╛рд▓реНрди рд╕рдХреНрдЫреМрдВ:
client_id
╨╕apikey
рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ API;- рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг URL (рдЕрдиреМрдареЛ, рддрд░ рдпрд╕ рд╡рд┐рдзрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рднрдгреНрдбрд╛рд░рдорд╛ рдХреЗрд╣рд┐ рдЫреИрди, рд╕рд╛рдпрдж рдпреЛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрди?)
рдпрд╕реНрддреИ рднрдпреЛ ред рдпрд╕ рд╕рд╛рдиреЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рдЖрдзрд╛рд░рдорд╛, рдХрд╛рдо рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ - рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдо рд╕рдиреНрджреЗрд╢ рд▓реЗрдЦреНрди рдорджреНрджрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреЗрд╣рд░реВрд▓рд╛рдИ, рд░ рдЕрд░реВ рд╕рдмреИрд▓рд╛рдИ - рднреЛрдЯ рдЧрд░реНрди рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрдЫреБ (рдХрд┐рдирдХрд┐ рдо рдХрд╕реИрд▓рд╛рдИ рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдЫреИрди рднрдиреЗрд░ рдмреБрдЭреНрди рдЪрд╛рд╣рдиреНрдЫреБ)ред
рддрдкрд╛рдИрдВрдХреЛ рдзреНрдпрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрдмрд╛рдж!
рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред
рдХреЗ рддрдкрд╛рдЗрдБ Habr рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?
-
рд╣реЛ, рдо рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ, рдо рдпрд╕рдорд╛ рдЦреБрд╕реА рдЫреБ
-
рд╣реЛ, рдо рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдЕрд╕реБрд╡рд┐рдзрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ
-
рд╣реЛрдЗрди, рдо рдореЗрд░реЛ рдлреЛрдирдорд╛ рд╡реЗрдм рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ
-
рд╣реЛрдЗрди, рдо рдореЗрд░реЛ рдХрдореНрдкреНрдпреБрдЯрд░рдмрд╛рдЯ Habr рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреБ
357 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред 30 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред
рд╕реНрд░реЛрдд: www.habr.com