ืืคืœื™ืงืฆื™ื™ืช Habr (ืœื) ืจืฉืžื™ืช - HabrApp 2.0: ืžืงื‘ืœ ื’ื™ืฉื”

ืขืจื‘ ืื—ื“ ืขืฆื‘ื ื™ ื•ื›ื‘ืจ ื“ื™ ืžืฉืขืžื, ืื ื™ ืžื“ืคื“ืฃ ืจืฉืžื™ืช ื™ื™ืฉื•ื ื—ื‘, ืฉื•ื‘ ื›ื•ืคืคืชื™ ืืช ืืฆื‘ืขื•ืชื™ื™, ืื—ืช ืœื›ืœ ืชื›ื•ื ื” ืฉืื™ื ื” ืคื•ืขืœืช. ื›ืืŸ, ืœืžืฉืœ, ืืชื” ืœื ื™ื›ื•ืœ ืœื”ื’ื™ื‘, ื›ืืŸ ื ืฉืœืœืช ื–ื›ื•ืช ื”ืฆื‘ืขื”, ื•ื‘ื›ืœืœ, ืœืžื” ื”ื ื•ืกื—ืื•ืช ืœื ื ืจืื•ืช ืขืœ ื”ืžืกืš?

ืืคืœื™ืงืฆื™ื™ืช Habr (ืœื) ืจืฉืžื™ืช - HabrApp 2.0: ืžืงื‘ืœ ื’ื™ืฉื”
ื”ื•ื—ืœื˜: ืื ื—ื ื• ืฆืจื™ื›ื™ื ืžืฉื”ื• ื ื•ื—, ื ืขื™ื, ืžืฉื”ื• ืžืฉืœื ื•. ืžื” ืœื’ื‘ื™ ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืขื‘ื•ืจ Habr?
ืชืŸ ืœื™ ืœืชืช ืœืš ื›ืžื” ืฆื™ืœื•ืžื™ ืžืกืš ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืžืฆื‘.

ืืคืœื™ืงืฆื™ื™ืช Habr (ืœื) ืจืฉืžื™ืช - HabrApp 2.0: ืžืงื‘ืœ ื’ื™ืฉื”ืื™ื›ืฉื”ื• ื–ื” ื ืจืื” ื›ื›ื” ื–ื” - ืฉืœ. ืืคืœื™ืงืฆื™ื™ืช habr.com

ืจืฉื™ืžื” ืฉืœ "ืื™ ื ื•ื—ื•ืช"

  • ืœื ื ื™ืชืŸ ืœื“ืจื’ ืคืจืกื•ื ืฉื”ื“ื™ืจื•ื’ ืฉืœื• ืฉื•ื ื” ืž-0
  • ืœื ืชืžื™ื“ ืืคืฉืจ ืœื›ืชื•ื‘ ืชื’ื•ื‘ื”
  • ืกืงืจื™ื ืœื ืขื•ื‘ื“ื™ื
  • ื ื•ืกื—ืื•ืช ืื™ื ืŸ ื’ืœื•ื™ื•ืช ื‘ื ื•ืฉื ื›ื”ื” (ืฉื—ื•ืจ ืขืœ ืฉื—ื•ืจ)
  • ืœื ื›ืœ ื”ืกื™ืžื ื™ื•ืช ื–ืžื™ื ื•ืช

ื›ืŸ, ื”ืืคืœื™ืงืฆื™ื” ืœื ืขื•ื“ื›ื ื” ืžืื– ืื•ื’ื•ืกื˜ ืฉื ื” ืฉืขื‘ืจื”, ืื‘ืœ ื”ื™ื ืขื“ื™ื™ืŸ ื’ืจื•ืขื”. ื‘ืื•ืคืŸ ื›ืœืœื™, ืฆืจื™ืš ืœืชืงืŸ ืืช ื–ื”.

ื—ืœืง ืจืืฉื•ืŸ. ืžื—ืคืฉ ื’ื™ืฉื”.

ืฉืื™ืœืชืช ื’ื•ื’ืœ ืžื”ื™ืจื” "Habrahabr API" ื–ื” ืื•ืžืจ ืฉื–ื” ื›ื‘ืจ ื“ื™ ืžื™ื•ืฉืŸ ืžืื’ืจ ื‘-Github, ืœื ืขื•ื“ื›ืŸ ืžืื– ื ื•ื‘ืžื‘ืจ 21 2016ื•ื–ื”, ืœืจื’ืข, ืฉื ืชื™ื™ื ื•ื—ืฆื™.

ืžืชืขืœื ืžื”ืขื•ื‘ื“ื” ืฉื–ื” PHP, ื’ืœื•ืœ ืœืžื˜ื” ื•ืงืจื:

ืงื‘ืœืช ืžื–ื”ื” ื”ืืคืœื™ืงืฆื™ื”

ืœื ืฆืœ ื˜ื•ืคืก ื–ื” ื‘-Habrahabr, ืขืœื™ืš ืœืชืืจ ื‘ืงืฆืจื” ืืช ืžื”ื•ืช ื”ืืคืœื™ืงืฆื™ื” ื”ื—ื“ืฉื” ื•ืืช ื”ืžื˜ืจื” ืฉืœืฉืžื” ื”ื•ื ื–ืงื•ืง ืœ-API.

ืื™ืŸ ืฉืืœื”, ืื ืืชื” ืฆืจื™ืš ืœืงื‘ืœ ื’ื™ืฉื”, ืื– ืืชื” ืฆืจื™ืš ืืช ื–ื”. ืื ื• ื›ื•ืชื‘ื™ื ืžื›ืชื‘ (ื‘ืงื™ืฆื•ืจ):

ืžื›ืชื‘

ื™ืฉ ืจืฆื•ืŸ ืœื”ื’ื™ืฉ ื‘ืงืฉื” ืขื‘ื•ืจ Habr ืขืœ ื‘ืกื™ืก PWA. ื™ืฉ ืœื›ืš ืžืกืคืจ ืกื™ื‘ื•ืช. 

ื”ืจืืฉื•ืŸ ื•ื”ื‘ืจื•ืจ ื‘ื™ื•ืชืจ: ืืคืœื™ืงืฆื™ื™ืช ืื ื“ืจื•ืื™ื“ ืœื ืขื•ื ื” ืขืœ ื”ื“ืจื™ืฉื•ืช ื”ืื™ืฉื™ื•ืช ืฉืœื™.

ืฉื ื™ืช: ืื™ืŸ ืžืกืคื™ืง ื”ืชืจืื•ืช ืžืงื•ืžื™ื•ืช ืขืœ ื›ืœ ืžื™ื ื™ ื“ื‘ืจื™ื ืฉื‘ื“ืจืš ื›ืœืœ ืžื’ื™ืขื™ื ื‘ืžื™ื™ืœ (ืชื’ื•ื‘ื•ืช ืœืžืฉืœ).

ืฉืœื™ืฉื™ืช: ืขื™ื›ื•ื‘ื™ื ืื™ืฉื™ื™ื (ื›ื ืงื•ื“ืช ืžื‘ื˜) ืขืœ ืื ืฉื™ื/ืžืจื›ื–ื™ื ืฉืžืขื ื™ื™ื ื™ื ืื•ืชื™, ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืชื—ื•ืžื™ ื”ืขื ื™ื™ืŸ ืฉืœื™.

ื”ืชืฉื•ื‘ื”, ื›ืžื•ื‘ืŸ, ืœื ื”ื™ื™ืชื” ื ืขื™ืžื” ื‘ืžื™ื•ื—ื“, ืื‘ืœ ืœืคื—ื•ืช ื›ื ื”:

ืœืžืจื‘ื” ื”ืฆืขืจ, ื”ื’ื™ืฉื” ืœ-API ืฉืœื ื• ืื™ื ื” ื–ืžื™ื ื” ื›ืขืช. ืื ื• ืžืชื›ื ื ื™ื ืœื—ื“ืฉ ืืช ืžืชืŸ ื”ื’ื™ืฉื” ืœืื—ืจ ืฉื ืกื™ื™ื ืœื”ืฉืœื™ื ืืช ื”-API, ืืš ืื™ืŸ ืœื ื• ืขื“ื™ื™ืŸ ืชืืจื™ื›ื™ื ืžื“ื•ื™ืงื™ื, ื›ื™ ืื ื• ืขืกื•ืงื™ื ื›ืขืช ื‘ืคืชืจื•ืŸ ืžืฉื™ืžื•ืช ืขื“ื™ืคื•ืช ืื—ืจื•ืช.

"ืื•ืงื™ื™ ืื™ืŸ ื‘ืขื™ื”! ื ืžืฆื™ื ืžืฉื”ื•!" โ€“ ืืžืจืชื™ ืœืขืฆืžื™ ื•ื”ืชื—ืœืชื™ ืœื—ืคืฉ.

ื—ืœืง ืฉื ื™. ื—ืคื™ืจื•ืช ืขืžื•ืงื•ืช.

ื‘ื”ืชื‘ืกืก ืขืœ ื”ื”ื™ื’ื™ื•ืŸ, ืื ื”ืืคืœื™ืงืฆื™ื” ืคื•ืขืœืช, ืื– ื™ืฉ ืœื” ื’ื™ืฉื” ืœ-API, ื•ื”ื™ื ืžื—ื•ื‘ืจืช ืœืืคืœื™ืงืฆื™ื”. ื‘ื•ืื• ื ื ืชื—.

ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืขื•ืกืงื™ื ื‘ืชื ื•ืขื”, Wireshark ื”ื™ื ื”ื‘ื—ื™ืจื” ืฉืœื ื•. ืœื ื‘ืœื™ ื›ืื‘ื™ื, ืœืื—ืจ ืฉื—ื™ื‘ืจื ื• ืืช ื”ื˜ืœืคื•ืŸ ืœืื™ื ื˜ืจื ื˜ ื“ืจืš ืžื—ืฉื‘ ืฉื•ืœื—ื ื™, ืื ื• ืคื•ืชื—ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ื•ืžืกืชื›ืœื™ื ืขืœ ื”ื‘ืงืฉื•ืช:

ืืคืœื™ืงืฆื™ื™ืช Habr (ืœื) ืจืฉืžื™ืช - HabrApp 2.0: ืžืงื‘ืœ ื’ื™ืฉื”
ื‘ืจื•ืจ ืฉืฉื•ื ื“ื‘ืจ ืœื ื‘ืจื•ืจ

ื›ืŸ, ื”ื›ืœ ืžื•ืฆืคืŸ, ืื‘ืœ ืื ื™ ืœื ืจื•ืฆื” ืœื”ืชืขืกืง ืขื ืงืจื™ืคื˜ื•ื’ืจืคื™ื”. ืื– ืืชื” ืฆืจื™ืš ืœื”ืกืชื›ืœ ื‘ืชื•ืš ื”ื™ื™ืฉื•ื ืขืฆืžื•.

ืžืคื•ืจืง . 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"

ื–ื” ื”ืงื•ื“ ืขื‘ื•ืจ ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ืฉืœ ืื ื“ืจื•ืื™ื“ (ื“ืœื•ื•ื™ืง 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 ืœืฆืคื™ื™ื” ื‘ื™ื•ืžื ื™ ื™ื™ืฉื•ืžื™ื.

ืืคืœื™ืงืฆื™ื™ืช Habr (ืœื) ืจืฉืžื™ืช - HabrApp 2.0: ืžืงื‘ืœ ื’ื™ืฉื”

ื‘ืื•ืคืŸ ื‘ืœืชื™ ืฆืคื•ื™, ื”ื™ื•ืžื ื™ื ื”ืชื‘ืจืจื• ื›ืžืคื•ืจื˜ื™ื ืืคื™ืœื• ื™ื•ืชืจ ืžื”ืฆืคื•ื™.

ื›ืืŸ ื™ืฉ ืœื ื• ืœื ืจืง ืืช ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื client_idืื‘ืœ ื˜ื•ืงืŸ ืžืฉืชืžืฉ/ืืคืœื™ืงืฆื™ื”, ื• ื”ืชื—ื‘ืจ ะธ ืกื™ืกืžื ื‘ื˜ืงืกื˜ ื‘ืจื•ืจ!

ื›ืžื” ืชื™ืื•ืจื™ื•ืช ืงื•ื ืกืคื™ืจืฆื™ื”ืขืฆื ื”ื ื•ื›ื—ื•ืช ืฉืœ ื›ื ื™ืกื” ื•ืกื™ืกืžื” ื‘ื™ื•ืžื ื™ื ืื™ื ื” ืคื•ื’ืขืช ื‘ื›ืœื•ื, ืžื›ื™ื•ื•ืŸ ืฉื ื™ืชืŸ ืœืงืจื•ื ืืช ื”ื™ื•ืžื ื™ื ื”ืœืœื• ืจืง ืขื ื–ื›ื•ื™ื•ืช ืฉื•ืจืฉ ืื• ื—ื™ื‘ื•ืจ ื‘ืืžืฆืขื•ืช adb. ืื‘ืœ ื‘ื’ืœืœ ื”ืขื•ื‘ื“ื” ืฉื‘ื™ืŸ ื”ืื ืฉื™ื ืฉืงื•ืจืื™ื ืืช Habr ื™ืฉ ืžืคืชื—ื™ ืื ื“ืจื•ืื™ื“ ืฉืื•ืœื™ ื”ืคืขืœืชื ืื™ืชื•ืจ ื‘ืื’ื™ื, ื–ื” ื”ื•ืคืš ืœื‘ืขื™ื”.

ื‘ืžืงืจื” ื–ื”, "ื˜ืขื™ื ื” ื—ื™ื ื" ื‘ืฉื“ื” ื”ืชืขื•ืคื” ืขืœื•ืœื” ืœื’ืจื•ื ืœื’ื ื™ื‘ืช ื—ืฉื‘ื•ืŸ, ืื‘ืœ ืžื™ ืฆืจื™ืš ืืช ื–ื”?
ืžื”ื™ื•ืžื ื™ื ื”ืืœื” ื ื•ื›ืœ ืœื—ืœืฅ:

  • client_id ะธ apikeyื ื“ืจืฉ ืœื’ืฉืช API;
  • ื›ืชื•ื‘ืช URL ืœื”ืจืฉืืช ืžืฉืชืžืฉ (ืžื•ื–ืจ, ืื‘ืœ ืื™ืŸ ืฉื•ื ื“ื‘ืจ ื‘ืžืื’ืจ ืขืœ ื”ืฉื™ื˜ื” ื”ื–ื•, ืื•ืœื™ ื”ื™ื ืœื ืžืกื•ืคืงืช?)

ื›ื›ื” ื–ื” ืงืจื”. ื‘ื”ืชื‘ืกืก ืขืœ ืžื—ืงืจ ื–ืขื™ืจ ื–ื”, ื”ืขื‘ื•ื“ื” ื›ื‘ืจ ืžืชื‘ืฆืขืช ืขืœ ืคืจื•ื™ืงื˜ ืงื˜ืŸ - ื™ื™ืฉื•ื ืžืฉืœื ื• ืฉืœ ืืคืœื™ืงืฆื™ื” ืœื ื™ื™ื“. ืื ื™ ืžื‘ืงืฉ ืžืžื™ ืฉืจื•ืฆื” ืœืขื–ื•ืจ ืœื›ืชื•ื‘ ื”ื•ื“ืขื”, ื•ืžื›ืœ ื”ืฉืืจ - ืœื”ืฆื‘ื™ืข (ื›ื™ ืื ื™ ืจื•ืฆื” ืœื”ื‘ื™ืŸ ืื ืžื™ืฉื”ื• ืฆืจื™ืš ืืช ื–ื”).

ืชื•ื“ื” ืœืš!

ืจืง ืžืฉืชืžืฉื™ื ืจืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืชืฃ ื‘ืกืงืจ. ืœื”ืชื—ื‘ืจื‘ื‘ืงืฉื”.

ื”ืื ืืชื” ืžืฉืชืžืฉ ื‘ืืคืœื™ืงืฆื™ื™ืช Habr ืœื ื™ื™ื“?

  • ื›ืŸ, ืื ื™ ืžืฉืชืžืฉ ื‘ื•, ืื ื™ ืžืจื•ืฆื” ืžืžื ื•

  • ื›ืŸ, ืื ื™ ืžืฉืชืžืฉ ื‘ื”, ื”ืืคืœื™ืงืฆื™ื” ื’ื•ืจืžืช ืื™ ื ื•ื—ื•ืช

  • ืœื, ืื ื™ ืžืฉืชืžืฉ ื‘ื’ืจืกืช ื”ืื™ื ื˜ืจื ื˜ ื‘ื˜ืœืคื•ืŸ ืฉืœื™

  • ืœื, ืื ื™ ืžืฉืชืžืฉ ื‘-Habr ืžื”ืžื—ืฉื‘ ืฉืœื™

357 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 30 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”