Fredrik Prüzelius
Medlem
Kommer man behöva logga in på SAS och Amex via appen? Det här är inte mitt område så jag blir lite misstänksam att logga in hur som helst.
Ja, man anger sina inloggningsuppgifter till SAS och Amex i appen. Helt klart sunt att vara skeptisk till en random person på nätet som påstår sig ha en app!
Trevligt!
Ligger koden någonstans, alternativt har du skrivit ner vad du hittat om Amex apierna? Egentligen intresserad av en app men helt klart intresserad av datan![]()
Hela koden ligger inte någon stans ännu, men så här ser koden för inloggning och hämtande av info ut. (fan, formateringen blev skit... )
fun loginAMEX(login: String, password: String, callback: () -> Unit) {
val queue = Volley.newRequestQueue(this)
val url = "https://global.americanexpress.com/myca/logon/emea/action/login"
val request = object : StringRequest(Request.Method.POST,
url,
Response.Listener<String> { response ->
appendMessage("Inloggning amex.se OK")
amexLogin = true
callback()
},
object : Response.ErrorListener {
override fun onErrorResponse(error: VolleyError?) {
appendMessage("Fel vid inloggning mot amex.se: " + error.toString())
}
}
) {
override fun getParams(): MutableMap<String, String> {
val params = HashMap<String, String>()
params["request_type"] = "login"
params["Face"] = "sv_SE"
params["REMEMBERME"] = "on"
params["DestPage"] = "American Express - Login"
params["Logon"] = "Logon"
params["UserID"] = login
params["Password"] = password
return params
}
override fun getHeaders(): MutableMap<String, String> {
val headers = HashMap<String, String>()
headers["Origin"] = "American Express Credit Cards, Rewards, Travel and Business Services"
headers["Content-type"] = "application/x-www-form-urlencoded; charset=UTF-8"
headers["Accept"] = "*/*"
return headers
}
}
queue.add(request)
}
fun getAMEXinfo() {
val queue = Volley.newRequestQueue(this)
val url = "American Express/Logon to Account Access"
val request = object : StringRequest(Request.Method.GET,
url,
Response.Listener<String> { response ->
val spending = getStringBetween(response, " till en summa av ", " kronor du behöver handla")
if (spending != null) {
val spendToday = spending.toInt()
setInfo(R.id.spend_today, NumberFormat.getIntegerInstance().format(spendToday) + " kr")
val today = Calendar.getInstance()
val doy = today.get(Calendar.DAY_OF_YEAR)
val maxDoy = today.getActualMaximum(Calendar.DAY_OF_YEAR)
setInfo(R.id.spend_1231, NumberFormat.getIntegerInstance().format(spendToday * (maxDoy / doy.toFloat())) + " kr")
}
},
object : Response.ErrorListener {
override fun onErrorResponse(error: VolleyError?) {
appendMessage("Fel vid hämtande av info från americanexpress.com: " + error.toString())
}
}
) {
override fun getHeaders(): MutableMap<String, String> {
val headers = HashMap<String, String>()
headers["Accept"] = "*/*"
return headers
}
}
queue.add(request)
}