ืขืจื ืืื ืขืฆืื ื ืืืืจ ืื ืืฉืขืื, ืื ื ืืืคืืฃ ืจืฉืืืช ืืืฉืื ืื, ืฉืื ืืืคืคืชื ืืช ืืฆืืขืืชืื, ืืืช ืืื ืชืืื ื ืฉืืื ื ืคืืขืืช. ืืื, ืืืฉื, ืืชื ืื ืืืื ืืืืื, ืืื ื ืฉืืืช ืืืืช ืืฆืืขื, ืืืืื, ืืื ืื ืืกืืืืช ืื ื ืจืืืช ืขื ืืืกื?
ืืืืื: ืื ืื ื ืฆืจืืืื ืืฉืื ื ืื, ื ืขืื, ืืฉืื ืืฉืื ื. ืื ืืืื ืืืคืืืงืฆืื ืฉืื ืขืืืจ Habr?
ืชื ืื ืืชืช ืื ืืื ืฆืืืืื ืืกื ืืื ืืืืื ืืช ืืืฆื.
ืืืืฉืื ืื ื ืจืื ืืื ืื - ืฉื. ืืคืืืงืฆืืืช habr.com
ืจืฉืืื ืฉื "ืื ื ืืืืช"
- ืื ื ืืชื ืืืจื ืคืจืกืื ืฉืืืืจืื ืฉืื ืฉืื ื ื-0
- ืื ืชืืื ืืคืฉืจ ืืืชืื ืชืืืื
- ืกืงืจืื ืื ืขืืืืื
- ื ืืกืืืืช ืืื ื ืืืืืืช ืื ืืฉื ืืื (ืฉืืืจ ืขื ืฉืืืจ)
- ืื ืื ืืกืืื ืืืช ืืืื ืืช
ืื, ืืืคืืืงืฆืื ืื ืขืืืื ื ืืื ืืืืืกื ืฉื ื ืฉืขืืจื, ืืื ืืื ืขืืืื ืืจืืขื. ืืืืคื ืืืื, ืฆืจืื ืืชืงื ืืช ืื.
ืืืง ืจืืฉืื. ืืืคืฉ ืืืฉื.
ืฉืืืืชืช ืืืื ืืืืจื "Habrahabr API" ืื ืืืืจ ืฉืื ืืืจ ืื ืืืืฉื
ืืชืขืื ืืืขืืืื ืฉืื PHP, ืืืื ืืืื ืืงืจื:
ืงืืืช ืืืื ืืืคืืืงืฆืื
ืื ืฆื
ืืืคืก ืื ื-Habrahabr, ืขืืื ืืชืืจ ืืงืฆืจื ืืช ืืืืช ืืืคืืืงืฆืื ืืืืฉื ืืืช ืืืืจื ืฉืืฉืื ืืื ืืงืืง ื-API.
ืืื ืฉืืื, ืื ืืชื ืฆืจืื ืืงืื ืืืฉื, ืื ืืชื ืฆืจืื ืืช ืื. ืื ื ืืืชืืื ืืืชื (ืืงืืฆืืจ):
ืืืชื
ืืฉ ืจืฆืื ืืืืืฉ ืืงืฉื ืขืืืจ Habr ืขื ืืกืืก PWA. ืืฉ ืืื ืืกืคืจ ืกืืืืช.
ืืจืืฉืื ืืืืจืืจ ืืืืชืจ: ืืคืืืงืฆืืืช ืื ืืจืืืื ืื ืขืื ื ืขื ืืืจืืฉืืช ืืืืฉืืืช ืฉืื.
ืฉื ืืช: ืืื ืืกืคืืง ืืชืจืืืช ืืงืืืืืช ืขื ืื ืืื ื ืืืจืื ืฉืืืจื ืืื ืืืืขืื ืืืืื (ืชืืืืืช ืืืฉื).
ืฉืืืฉืืช: ืขืืืืืื ืืืฉืืื (ืื ืงืืืช ืืื) ืขื ืื ืฉืื/ืืจืืืื ืฉืืขื ืืื ืื ืืืชื, ืชืื ืืชืืฉืืืช ืืชืืืื ืืขื ืืื ืฉืื.
ืืชืฉืืื, ืืืืื, ืื ืืืืชื ื ืขืืื ืืืืืื, ืืื ืืคืืืช ืื ื:
ืืืจืื ืืฆืขืจ, ืืืืฉื ื-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"
ืื ืืงืื ืขืืืจ ืืืืื ื ืืืืจืืืืืืช ืฉื ืื ืืจืืืื (ืืืืืืง 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