рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЗрд╡рд╛ Yandex.Fotki рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ

рдореБрдЭреЗ рдСрдЯреЛрдореЗрдЯрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЛрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ , рдЬреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдмрд╕реНрдЯреНрд░реЙрдЬ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ , рдпрд╛ рдмрд▓реНрдХрд┐, рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реИред

рддреЛ рдРрд╕реА рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдХрдард┐рдирд╛рдИ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OAuth рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдЪрд╛рдПрдВ)ред рдмреЗрд╢рдХ, рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ OAuth рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ Yandex.Photos рдкрд░ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ OAuth рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ:
3. OAuth рд╕рд░реНрд╡рд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЛрдХрди рдпрд╛ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреЛрдб рдЬреЛрдбрд╝рдХрд░ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдпреВрдЖрд░рдЖрдИ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИред

рдмрд╕ рд╣рдореЗрдВ рдЬреЛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдкреНрд░рд╢реНрди рд╢реЗрд╖ рд╣реИ: рд╣рдореЗрдВ рдпрд╣ рдЯреЛрдХрди рдХреИрд╕реЗ рдорд┐рд▓реЗрдЧрд╛? рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╣рдореЗрдВ рдРрд╕реА рдХреЙрд▓рдмреИрдХ URL рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЦреЛрд▓рдиреЗ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧреА, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдмрдЪрд╛рдПрдЧрд╛ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ URL рд╣реИрдВрдбрд▓рд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OS X рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╣ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдкрддреНрд░ рдХреЗ URL рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рд╣реИ ypu-oauth://... , рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдордп рдЖрдк рдРрд╕реЗ URL рдХреЛ "рдУрдкрди" рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореВрд▓ URL рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдмрдирд╛рдПрдБред рдирд╣реАрдВ, рдирд╣реАрдВ, рдПрдХреНрд╕рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдордд рдХрд░реЛ, рд╣рдореЗрдВ рдЗрд╕рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рдо рд╢реБрджреНрдз AppleScript рдореЗрдВ рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗрдВрдЧреЗред

AppleScript рдПрдбрд┐рдЯрд░ рдЦреЛрд▓реЗрдВ, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред



рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

 on open location theUrl #  theUrl тАФ    "" URL # : ypu-oauth://do#access_token=...&token_type=bearer&state=&expires_in=31536000 #  access_token  theUrl #  access_token    #       . #          end open location 


рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдХрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА Info.plist рдХреЛ Info.plist рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рд╣реЗрдЬреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдкреИрдХреЗрдЬ рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рдПрдБ рдФрд░ Contents рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВред рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде Info.plist рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
 <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string>YPU OAuth Authorizer</string> <key>CFBundleURLSchemes</key> <array> <string>ypu-oauth</string> </array> </dict> </array> 


рдкрд░рд┐рдгрд╛рдореА рд╕рд╛рдордЧреНрд░реА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:



рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ!

рдЕрдВрддрд┐рдо рдЪрд░рдгред рд╣рдо рдЕрдкрдиреЗ OAuth рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ Yandex.Photos рдкрд░ рдмрджрд▓рддреЗ рд╣реИрдВ :



рд╕реЗрд╡рд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдКрдкрд░ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рдореЗрд░реЗ рдкрд╛рдВрдЪ рд╕реЗрдВрдЯ рдЬреЛрдбрд╝реЗрдВред рд╕реЗрд╡рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╛рдЗрдВрдбрд░ рд╕реЗ рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



рд░реЗрдбреА-рдореЗрдб рд╕реЗрд╡рд╛, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЖрд╡реЗрджрди рдФрд░ рдЙрдирдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЛ рдпрд╣рд╛рдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред 10.7 рдФрд░ 10.9 рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ 10.8 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдорд╛рдирдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ - рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдлрдкреАрдПрд▓ ред

Source: https://habr.com/ru/post/In207818/


All Articles