(แƒแƒ แƒ)แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Habr แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ - HabrApp 2.0: แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒ

แƒ”แƒ แƒ— แƒ“แƒแƒฆแƒšแƒ˜แƒš แƒ“แƒ แƒฃแƒ™แƒ•แƒ” แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒกแƒแƒฌแƒงแƒ”แƒœ แƒกแƒแƒฆแƒแƒ›แƒแƒก, แƒ›แƒ” แƒ•แƒคแƒฃแƒ แƒชแƒšแƒแƒ• แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Habr-แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ›แƒแƒ•แƒ˜แƒฎแƒแƒ แƒ” แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜, แƒ—แƒ˜แƒ—แƒ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒก แƒ•แƒ”แƒ  แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ—, แƒแƒฅ แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒ”แƒ™แƒ แƒซแƒแƒšแƒ”แƒ‘แƒแƒ— แƒ“แƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“, แƒ แƒแƒขแƒแƒ› แƒแƒ  แƒฉแƒแƒœแƒก แƒคแƒแƒ แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ”?

(แƒแƒ แƒ)แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Habr แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ - HabrApp 2.0: แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒ
แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ: แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ แƒแƒฆแƒแƒช แƒ™แƒแƒ›แƒคแƒแƒ แƒขแƒฃแƒšแƒ˜, แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ, แƒ แƒแƒฆแƒแƒช แƒฉแƒ•แƒ”แƒœแƒ˜. แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก Habr-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก?
แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒ”แƒชแƒ˜แƒ— แƒ›แƒแƒ’แƒชแƒ”แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒ˜ แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“.

(แƒแƒ แƒ)แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Habr แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ - HabrApp 2.0: แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒแƒ แƒแƒฆแƒแƒช แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒแƒ› - แƒ“แƒแƒœ. habr.com แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ

"แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒแƒ‘แƒ˜แƒก" แƒกแƒ˜แƒ

  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒแƒคแƒแƒกแƒแƒ— แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ แƒ”แƒ˜แƒขแƒ˜แƒœแƒ’แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ 0-แƒ“แƒแƒœ
  • แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ
  • แƒ’แƒแƒ›แƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก
  • แƒคแƒแƒ แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒแƒ  แƒฉแƒแƒœแƒก แƒ›แƒฃแƒฅ แƒ—แƒ”แƒ›แƒแƒจแƒ˜ (แƒจแƒแƒ•แƒ˜ แƒจแƒแƒ•แƒ–แƒ”)
  • แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒœแƒ˜แƒจแƒœแƒ” แƒแƒ  แƒแƒ แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜

แƒ“แƒ˜แƒแƒฎ, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ แƒ’แƒแƒกแƒฃแƒšแƒ˜ แƒฌแƒšแƒ˜แƒก แƒแƒ’แƒ•แƒ˜แƒกแƒขแƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒชแƒฃแƒ“แƒ˜แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒก แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ”แƒก.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜. แƒ”แƒซแƒ”แƒ‘แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก.

แƒกแƒฌแƒ แƒแƒคแƒ˜ Google แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ "habrahabr API" แƒแƒ›แƒ‘แƒแƒ‘แƒก, แƒ แƒแƒ› แƒฃแƒ™แƒ•แƒ” แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒชแƒแƒ•แƒ˜ Github-แƒ–แƒ”, แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ  แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ แƒœแƒแƒ”แƒ›แƒ‘แƒ”แƒ แƒ˜ 21 2016แƒ“แƒ แƒ”แƒก, แƒ”แƒ แƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜แƒ—, แƒแƒ แƒฌแƒ”แƒšแƒ˜แƒฌแƒแƒ“แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒ˜.

แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒ— แƒ˜แƒ› แƒคแƒแƒฅแƒขแƒก, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก PHP, แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ“แƒ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ—:

แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก ID-แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ

แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒแƒ› แƒคแƒแƒ แƒ›แƒแƒก Habrahabr-แƒ–แƒ”, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒแƒฆแƒฌแƒ”แƒ แƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒ แƒกแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜, แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒ›แƒแƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ API.

แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ”แƒก แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฌแƒ”แƒ แƒ— แƒฌแƒ”แƒ แƒ˜แƒšแƒก (แƒจแƒ”แƒ›แƒแƒ™แƒšแƒ”แƒ‘แƒ˜แƒ—):

แƒฌแƒ”แƒ แƒ

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜, แƒ แƒแƒ› แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜ Habr-แƒ–แƒ” PWA-แƒ–แƒ” แƒ“แƒแƒงแƒ แƒ“แƒœแƒแƒ‘แƒ˜แƒ—. แƒแƒ›แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก. 

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒจแƒ™แƒแƒ แƒ: Android แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒก แƒฉแƒ”แƒ›แƒก แƒžแƒ˜แƒ แƒแƒ“ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก.

แƒ›แƒ”แƒแƒ แƒ”: แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ˜แƒก แƒœแƒ˜แƒ•แƒ—แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒแƒ“แƒ˜แƒก แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒคแƒแƒกแƒขแƒ˜แƒ— (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜).

แƒ›แƒ”แƒกแƒแƒ›แƒ”: แƒžแƒ˜แƒ แƒแƒ“แƒ˜ แƒจแƒ”แƒฏแƒแƒ›แƒ”แƒ‘แƒ (แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ•แƒ) แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ–แƒ”/แƒชแƒ”แƒœแƒขแƒ แƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก, แƒฉแƒ”แƒ›แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒžแƒแƒกแƒฃแƒฎแƒ˜, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ  แƒ˜แƒงแƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒฃแƒšแƒฌแƒ แƒคแƒ”แƒšแƒ˜:

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒฉแƒ•แƒ”แƒœแƒก API-แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ›แƒ˜แƒฃแƒฌแƒ•แƒ“แƒแƒ›แƒ”แƒšแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒœ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ API-แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ›แƒ“แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒฃแƒกแƒขแƒ˜ แƒ—แƒแƒ แƒ˜แƒฆแƒ”แƒ‘แƒ˜ แƒฏแƒ”แƒ  แƒแƒ  แƒ’แƒ•แƒแƒฅแƒ•แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒกแƒฎแƒ•แƒ แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒ— แƒ•แƒแƒ แƒ— แƒ“แƒแƒ™แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜.

"แฒ™แƒแƒ แƒ’แƒ˜, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒ แƒแƒ! แƒ แƒแƒ›แƒ”แƒก แƒ›แƒแƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ‘แƒ—!" - แƒ•แƒฃแƒ—แƒฎแƒแƒ แƒ˜ แƒฉแƒ”แƒ›แƒก แƒ—แƒแƒ•แƒก แƒ“แƒ แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”.

แฒ›แƒ”แƒแƒ แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒฆแƒ แƒ›แƒ แƒ’แƒแƒ—แƒฎแƒ แƒ”แƒ‘แƒ˜.

แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ API-แƒ–แƒ” แƒ“แƒ แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜. แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒ—.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒกแƒแƒฅแƒ›แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ—แƒแƒœ, Wireshark แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜แƒ. แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒขแƒ™แƒ˜แƒ•แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒขแƒ”แƒšแƒ”แƒคแƒแƒœแƒก แƒ“แƒแƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒก แƒ“แƒ”แƒกแƒ™แƒขแƒแƒžแƒ˜แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒ“แƒ แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก:

(แƒแƒ แƒ)แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Habr แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ - HabrApp 2.0: แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒ
แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ, แƒ แƒแƒ› แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜

แƒ“แƒ˜แƒแƒฎ, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒแƒ  แƒ›แƒ˜แƒœแƒ“แƒ แƒ™แƒ แƒ˜แƒžแƒขแƒแƒ’แƒ แƒแƒคแƒ˜แƒ˜แƒก แƒแƒ แƒ”แƒ•แƒ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฎแƒ”แƒ“แƒแƒ— แƒ—แƒแƒ•แƒแƒ“ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก.

แƒ“แƒ”แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ .apk, แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒซแƒ”แƒ‘แƒœแƒ. แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  API-แƒก? แƒฃแƒคแƒšแƒ”แƒ‘แƒ, แƒกแƒแƒ‘แƒแƒšแƒแƒ, แƒแƒ“แƒ’แƒ˜แƒšแƒ˜, แƒกแƒแƒ“แƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ›แƒ˜แƒ“แƒ˜แƒก. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒšแƒ‘แƒแƒ— http(s), แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒชแƒแƒ“แƒแƒ— แƒ•แƒ˜แƒžแƒแƒ•แƒแƒ— "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"

แƒ”แƒก แƒแƒ แƒ˜แƒก Android แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ (แƒ“แƒแƒšแƒ•แƒ˜แƒ™ แƒ•.แƒ›.), แƒแƒ  แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ˜แƒœแƒช แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒฃแƒšแƒ˜. แƒ”แƒก แƒกแƒแƒ›แƒ˜ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜, แƒ›แƒแƒ—แƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒกแƒ แƒ“แƒ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ—, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช 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 แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“.

(แƒแƒ แƒ)แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ Habr แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ - HabrApp 2.0: แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒ

แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒšแƒแƒ“, แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ.

แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒก, แƒ แƒแƒช แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ client_idแƒ›แƒแƒ’แƒ แƒแƒ› แƒขแƒแƒ™แƒ”แƒœ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜/แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒกแƒ•แƒšแƒแƒ–แƒ” ะธ แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒ แƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜!

แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒ—แƒฅแƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ—แƒ”แƒแƒ แƒ˜แƒแƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒกแƒ แƒ“แƒ แƒžแƒแƒ แƒแƒšแƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ•แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ› แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ root แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒแƒœ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—. adb. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› Habr-แƒก แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒแƒœ Android-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒ— แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ, แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ“ แƒ˜แƒฅแƒชแƒ”แƒ•แƒ.

แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒแƒ”แƒ แƒแƒžแƒแƒ แƒขแƒจแƒ˜ โ€žแƒฃแƒคแƒแƒกแƒ แƒ“แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒแƒ›โ€œ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒ›แƒแƒžแƒแƒ แƒ•แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ•แƒ˜แƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ”แƒก?
แƒแƒ› แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ›แƒแƒ•แƒ˜แƒฆแƒแƒ—:

  • client_id ะธ apikeyแƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ api;
  • แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก URL (แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ, แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜?)

แƒแƒกแƒ”แƒช แƒ›แƒแƒฎแƒ“แƒ. แƒแƒ› แƒžแƒแƒฌแƒแƒฌแƒ˜แƒœแƒ แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒฃแƒ™แƒ•แƒ” แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒžแƒ แƒแƒ”แƒฅแƒขแƒ–แƒ” - แƒฉแƒ•แƒ”แƒœแƒ˜แƒ•แƒ” แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ. แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ”แƒ‘แƒก แƒ•แƒ—แƒฎแƒแƒ• แƒ›แƒ”แƒกแƒ˜แƒฏแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒจแƒ˜, แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ”แƒ‘แƒก แƒ™แƒ˜ - แƒฎแƒ›แƒ แƒ›แƒ˜แƒกแƒชแƒ”แƒœ (แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒ•แƒ˜แƒ’แƒ แƒ”แƒก แƒ•แƒ˜แƒœแƒ›แƒ”แƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ—แƒฃ แƒแƒ แƒ).

แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ!

แƒ’แƒแƒ›แƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒจแƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒแƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก. แฒจแƒ”แƒ‘แƒ แƒซแƒแƒœแƒ“แƒ˜แƒ—แƒ’แƒ—แƒฎแƒแƒ•แƒ—

แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Habr-แƒ˜แƒก แƒ›แƒแƒ‘แƒ˜แƒšแƒฃแƒ  แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก?

  • แƒ™แƒ˜, แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘, แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ•แƒแƒ 

  • แƒ“แƒ˜แƒแƒฎ, แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒแƒ‘แƒแƒก

  • แƒแƒ แƒ, แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒ•แƒ”แƒ‘ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก แƒฉแƒ”แƒ›แƒก แƒขแƒ”แƒšแƒ”แƒคแƒแƒœแƒ–แƒ”

  • แƒแƒ แƒ, แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ Habr-แƒก แƒฉแƒ”แƒ›แƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒ“แƒแƒœ

แƒ›แƒ˜แƒกแƒชแƒ แƒฎแƒ›แƒ 357 แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ›แƒ. 30-แƒ›แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ›แƒ แƒ—แƒแƒ•แƒ˜ แƒจแƒ”แƒ˜แƒ™แƒแƒ•แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ