ืืฒื ืืื ืืืื ืืื ืฉืืื ืืื ืฅ ื ืืื ืข ืืฐื ื, ืืื ืืื ืืืจืืืขืืืขืืขืจื ืืึทืึทืืืขืจ ืืึทืืจ ืึทืคึผืืึทืงืืืฉืึทื, ืึทืืึธื ืืืืืขืจ ืืื ืืขื ื ืืืื ืคืื ืืขืจ, ืืืื ืขืจ ืคึฟืึทืจ ืืขืืขืจ ื ืื-ืืจืืขืื ืฉืืจืื. ืื, ืืืฉื, ืงืขื ืืขื ื ืืฉื ืงืืืขื ืืืจื, ืื ืืืขืจื ืืขื ืืคืืขืืืื ืคืื ืฉืืืืขื, ืืื ืืืื, ืคืืจืืืืก ืืขืขื ืืื ืื ืคืึธืจืืืืขืก ื ืืฉื ืืืืคื ืขืงืจืึทื?
ืข ื ืื ื ืืืฉืืืก ื ืืขืฐืืจื : ืื ืจ ืืื ื ืืขืืืจืค ื ืขืคืข ืก ืืืงืืืขื , ื ืขืืืขื , ืขืคืข ืก ืืฒืืขื ืขื . ืืืึธืก ืืืขืื ืืืื ืืืืืขื ืข ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืึทืจ Habr?
ืืึธืื ืืืจ ืืขืื ืืืจ ืึท ืืืกื ืกืงืจืขืขื ืฉืึธืฅ ืฆื ืคึฟืึทืจืฉืืืื ืื ืกืืืืึทืฆืืข.
ืงืืงื ืขืคึผืขืก ืืื ืืึธืก ืืขื - ืคืื. habr.com ืึทืคึผืืึทืงืืืฉืึทื
ืจืฉืืื ืคืื "ืื ืงืึทื ืืืื ืืึทื ืกืื"
- ืืืจ ืงืขื ื ื ืืฉื ืึธืคึผืฉืึทืฆื ืึท ืืืกืืึทืืข ืืืขืืขื ืก ืจืึทื ื ืืื ืึทื ืืขืจืฉ ืคืื 0
- ืขืก ืืื ื ืื ืฉืืขื ืืืง ืืขืืืขื ืฆื ืฉืจืืึทืื ืึท ืืึทืืขืจืงืื ื
- ืคึผืึธืืืก ืืึธื ื ืื ืึทืจืืขื
- ืคืึธืจืืืืึทืก ืืขื ืขื ื ืืฉื ืงืขื ืืืง ืืื ืืื ืงื ืืขืืข (ืฉืืืึทืจืฅ ืืืืฃ ืฉืืืึทืจืฅ)
- ื ืื ืึทืืข ืืืงืืึทืจืงืก ืืขื ืขื ืื ืืืฆื
ืืึธ, ืื ืึทืคึผ ืืื ื ืืฉื ืืขืจืืืึทื ืืืงื ืืื ื ืืืืืืกื ืืขืฆืืข ืืึธืจ, ืึธืืขืจ ืขืก ืืื ื ืึธื ืฉืืขืื. ืืื ืึทืืืขืืืื, ืขืก ืืึทืจืฃ ืืืื ืคืึทืจืคืขืกืืืงื.
ืืืื ืืืื. ืืืจ ืืืื ืคึฟืึทืจ ืึทืงืกืขืก.
ืฉื ืขื Google ืึธื ืคึฟืจืขื "ืืึทืืจืืึทืืจ ืึทืคึผื" ืขืก ืืืื ืขืก ืืื ืฉืืื ืืึทื ืฅ ืคืึทืจืขืืืขืจื
ืืื ืึธืจืื ื ืื ืคืึทืงื ืึทื ืืึธืก ืืื PHP, ืืขืืืืข ืึทืจืึธืคึผ ืืื ืืืืขื ืขื:
ืืึทืงืืืขื ืื ืึทืคึผืคึผืืืงืึทืืืึธื ืฉืืึทื
ืืขื ืืืขื ืืืึทืืข
ืืขื ืคืึธืจืขื ืืืืฃ Habrahabr, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืฉืจืืึทืื ืืขืงืืฆืขืจ ืื ืขืกืึทื ืก ืคืื ืื ื ืืึทืข ืึทืคึผืืึทืงืืืฉืึทื ืืื ืื ืฆืื ืคึฟืึทืจ ืืืึธืก ืขืก ืืึทืจืฃ ืึทื API.
ืขืก ืืื ืงืืื ืงืฉืื, ืืืื ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืงืืืขื ืึทืงืกืขืก, ืืืจ ืืึทืจืคึฟื ืขืก. ืืืจ ืฉืจืืึทืื ืึท ืืจืืื (ืึทืืจืืืืืืืืื):
ืืจืืื
ืขืก ืืื ืึท ืคืึทืจืืึทื ื ืฆื ืืึทืื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืึทืจ Habr ืืืืืจื ืืืืฃ PWA. ืขืก ืืขื ืขื ืขืืืขืืข ืกืืืืช ืคึฟืึทืจ ืืขื.
ืืขืจ ืขืจืฉืืขืจ ืืื ืืขืจืกื ืงืืึธืจ ืืื ืืขืจ ืืึธื: ืื ืึทื ืืจืืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ื ืืฉื ืืจืขืคื ืืืื ืคืขืจืืขื ืืขืืข ืจืขืงืืืืจืขืืขื ืฅ.
ืฆืืืืืื ืก: ืขืก ืืขื ืขื ื ืืฉื ืืขื ืื ืืขืืืืจื ื ืึธืืืึทืคืึทืงืืืฉืึทื ื ืืืขืื ืึทืืข ืกืึธืจืฅ ืคืื ืืืื ืืืึธืก ืืืืฉืึทืืืึทืื ืงืืืขื ืืืจื ืืืืฆืคึผืึธืกื (ืืึทืืขืจืงืื ืืขื, ืคึฟืึทืจ ืืืึทืฉืคึผืื).
ืืจืื: ืคืขืจืืขื ืืขืืข ืืืืืืฉืขืกืฅ (ืืื ืึท ืคึผืขืจืกืคึผืขืงืืืื) ืืืืฃ ืืขื ืืฉื / ืืึทืื ืืืึธืก ืืื ืืขืจืขืก ืืืจ, ืืขื ืืืขื ืืื ืืฉืืื ืืืื ืืื ืืขืจืขืกื.
ืืขืจ ืขื ืืคืขืจ, ืคืื ืงืืจืก, ืืื ื ืืฉื ืืืืขืจ ืึธื ืืขื ืขื, ืึธืืขืจ ืืืึท ืืื ืืกืืขืจ ืขืจืืขื:
ืฆืื ืืึทืืืืขืจื, ืึทืงืกืขืก ืฆื ืืื ืืืขืจ ืึทืคึผื ืืื ืืขืจืืืืึทื ื ืืฉื ืื ืืืฆื. ืืืจ ืคึผืืึทื ืืจื ืฆื ื ืขืืขื ืืื ืืืืืขืจ ืฆืืฉืืขืื ืึทืงืกืขืก ื ืึธื ืืืจ ืขื ืืืงื ืื ืึทืคึผื, ืึธืืขืจ ืืืจ ืืึธื ื ืื ืืึธืื ืงืืื ืคึผืื ืืืขื ืืึทืืขืก ื ืึธื, ืืืืึทื ืืืจ ืืขื ืขื ืืขืจืืืืึทื ืคืึทืจื ืืืขื ืกืึทืืืืื ื ืื ืืขืจืข ืืืืืขืจืงืืึทื ืืึทืกืงืก.
"ืึธืืงืื, ืงืืื ืคึผืจืึธืืืขื! ืืืจ ืืืขืื ืขืคืขืก ืืืืคืงืืืขื!" โ ืืึธื ืืื ืฆื ืืืจ ืืื ืืึธื ืึธื ืืขืืฑืื ืงืืงื.
ืืืื ืฆืืืื. ืืืฃ ืขืงืกืงืึทืืืืืฉืึทื ื.
ืืึทืืืจื ืืืืฃ ืื ืืึธืืืง, ืืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืคืืืกื ืืืง, ืขืก ืืื ืึทืงืกืขืก ืฆื ืื API ืืื ืขืก ืืื ืืึทืจืืืืืืขืจื ืืื ืื ืึทืคึผืืึทืงืืืฉืึทื. ืืื ืก ืึทื ืึทืืืื.
ืืื ื ืืืจ ืืึทื ืืืขื ืืื ืคืึทืจืงืขืจ, Wireshark ืืื ืืื ืืืขืจ ืืจืืจื. ื ืื ืึธื ืขืืืขืืข ืคึผืืื ื, ืืืจ ืงืึธื ื ืขืงืืขื ืื ืืขืืขืคืึธื ืฆื ืื ืืื ืืขืจื ืขื ืืืจื ืึท ืืขืกืงืืึทืคึผ ืงืึธืืคึผืืืืขืจ, ืืืจ ืขืคึฟืขื ืขื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืงืืง ืืื ืื ืจืืงืืืขืก:
ืขืก ืืื ืงืืึธืจ ืึทื ืืึธืจื ืืฉื ืืื ืงืืึธืจ
ืืึธ, ืึทืืฅ ืืื ืื ืงืจืืคึผืืื, ืึธืืขืจ ืืื ืืึธื ื ืืฉื ืืืขืื ืฆื ืืึทืืึทืืึทื ืืื ืงืจืืคึผืืึธืืจืึทืคื. ืืขืจื ืึธื ืืืจ ืืึทืจืคึฟื ืฆื ืงืืงื ืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื.
ืืขืงืึธืืคึผืืืขื .ืึทืคึผืง, ืืืืืจ ืื ืืืืื ืงืืงื. ืืืึธืก ืืึทืจืฃ ืงืืื API? ืจืขืื, ืขื ืืคึผืืื ื, ืืขืจ ืึธืจื ืืื ืึทืืข ืจืืงืืืขืก ืืืื. ืืึธืก ืืื ืืืกืืึธืืข ืืืืคึผ(ืก), ืืึธืืืจ ืคึผืจืืืืจื ืฆื ืืขืคึฟืื ืขื "ืืืืคึผืก: //":
ืืื ืืขืงืข 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
ืึธืืขืจ ืกืืืขื ืืึทื ืืฆืขืจ / ืึทืคึผืืึทืงืืืฉืึทื, ืืื login ะธ ืคึผืึทืจืึธื ืืื ืงืืึธืจ ืืขืงืกื!
ืขืืืขืืข ืงืึทื ืกืคึผืืจืึทืกื ืืืจืืืื ืืืืื ืืืึทืืืึทื ืคืื ืึท ืืึธืืื ืืื ืคึผืึทืจืึธื ืืื ืื ืืึธืืก ืืื ื ืืฉื ืฉืึทืื ืขืคึผืขืก, ืืืืึทื ืื ืืึธืืก ืงืขื ืขื ืืืื ืืืืขื ืขื ืืืืื ืืื ืืืึธืจืฆื ืจืขืื ืึธืืขืจ ืึท ืงืฉืจ ืืืจื adb
. ืึธืืขืจ ืจืขืื ืฆื ืืขื ืคืึทืงื ืึทื ืฆืืืืฉื ืื ืืขื ืืฉื ืืืึธืก ืืืืขื ืขื Habr ืขืก ืืขื ืขื ืึทื ืืจืืื ืืขืืืขืืึธืคึผืขืจืก ืืืึธืก ืงืขื ืืึธืื ืืืืึทืืื ื ืขื ืืืืึทืื, ืืึธืก ืืืขืจื ืึท ืคึผืจืึธืืืขื.
ืืื ืืขื ืคืึทื, "ืคืจืื ืืฉืึทืจืืืฉืื ื" ืืื ืื ืึทืขืจืึธืคึผืึธืจื ืงืขื ืจืขืืืืืึทื ืืื ืืฉืืื ืื ืืืืืข, ืึธืืขืจ ืืืขืจ ืืึทืจืฃ ืขืก?
ืคืื ืื ืืึธืืก ืืืจ ืงืขื ืขื ืขืงืกืืจืึทืงื:
client_id
ะธapikey
ืคืืจืืื ืื ืฆื ืฆืืืจืื ืึทืคึผื;- ืืึทื ืืฆืขืจ ืืขืจืืืืืขื ืืฉ URL (ืืึธืื ืข, ืึธืืขืจ ืขืก ืืื ืืึธืจื ืืฉื ืืื ืื ืจืืคึผืึทืืึทืืึธืจื ืืืขืื ืืขื ืืืคึฟื, ืืคึฟืฉืจ ืขืก ืืื ื ืืฉื ืฆืืืขืฉืืขืื?)
ืืืื ืืื ืืขืฉืขื. ืืึทืืืจื ืืืืฃ ืืขื ืงืืืื ืืฉืืง ืคืึธืจืฉืื ื, ืึทืจืืขื ืืื ืฉืืื ืึทื ืืขืจืืืื ืืืืฃ ืึท ืงืืืื ืคึผืจืืืขืงื - ืืื ืืืขืจ ืืืืืขื ืข ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืึท ืจืืจืขืืืืืง ืึทืคึผืืึทืงืืืฉืึทื. ืืื ืืขื ืื ืืืืก ืืืืื ืืขืืคื ืฉืจืืืื ื ืืขืกืขืืืฉ, ืืื ืืืข ืื ืืขืจืข - ืฆื ืฉืืืืขื (ืืืืื ืืื ืืืื ืคืืจืฉืืืื ืฆื ืืืื ืขืจ ืืืจืฃ ืืืก).
ืืื ืืืืง!
ืืืืื ืจืขืืืกืืจืืจื ื ืืฆืขืจืก ืงืขื ืขื ืึธื ืืืื ื ืขืืขื ืืื ืื ืืืขืจืืืืง.
ืฆื ืืืจ ื ืืฆื ืื Habr ืจืืจืขืืืืืง ืึทืคึผืืึทืงืืืฉืึทื?
-
ืื, ืืื ื ืืฆื ืขืก, ืืื ืืื ืฆืืคืจืืื ืืื ืืื
-
ืืึธ, ืืื ื ืืฆื ืขืก, ืื ืึทืคึผืืึทืงืืืฉืึทื ื ืื ืงืึทื ืืืื ืืึทื ืก
-
ื ืืื, ืืื ื ืืฆื ืื ืืืขื ืืืขืจืกืืข ืืืืฃ ืืืื ืืขืืขืคืึธื
-
ื ืืื, ืืื ื ืืฆื Habr ืคึฟืื ืืืื ืงืึธืืคึผืืืืขืจ
357 ืืื ืืฆืขืจ ืืืื ืืขืฉืืืื. 30 ืืื ืืฆืขืจ ืืืื ืืื ืืคืืขืืืืื.
ืืงืืจ: www.habr.com