Coded on a dynamic page. Why is this an error?
Also puts hubitat into a loop that can only be broken by pulling power from hub, forcing a reboot
section("ID is generated when this profile is saved.")
groovy.lang.MissingMethodException: No signature of method: app1543241222184578685064.section() is applicable for argument types: (java.lang.String) values: [ID is generated when this profile is saved.]
Possible solutions: version(), getAt(java.lang.String) on line 157 (pageZeroVerify)
I'm not sure why you are building empty sections the way you are but I always add the curly brackets even if the section is empty. Also, and probably most important, is that your last section is missing "()". Try something like this
if(atomicState.accessToken)
{
section("ID is\n${atomicState.accessToken.substring(0,8)}") {}
section()
{
href ("removePage", description: "Tap to revoke ID", title: "Revoke ID")
}
}
else
section("ID is generated when this profile is saved.") {}
section()
{
input "simkeypad", "device.InternetKeypad", multiple: false, required:true, submitOnChange: true,
title: "Simulated Keypad Device"
}
The missing method issue is not possible (or I suppose practical) to catch on save, however the loop issue is known and will be fixed in the next release.
Also getting caught in multiple places in my code with remove statements with text
remove("Go back to page One to Remove")
groovy.lang.MissingMethodException: No signature of method: app1543247847303588515241.remove() is applicable for argument types: (java.lang.String) values: [Go back to page One to Remove]
Possible solutions: removePage(), getAt(java.lang.String) on line 238 (pageOneVerify
groovy.lang.MissingMethodException: No signature of method: java.lang.String.encodeAsBase64() is applicable for argument types: () values: []
Possible solutions: decodeBase64() on line 290 (installed
The full coding
if (atomicState.accessToken)
{
def redirectUrl = buildRedirectUrl //"${serverUrl}/oauth/initialize?appId=${app.id}&access_token=${atomicState.accessToken}"
def b64= redirectUrl.encodeAsBase64()
try {
def url='https://www.arnb.org/shmdelay/oauthinit_st.php'
url+='?i='+b64 //stop this data from interacting
include 'asynchttp_v1'
asynchttp_v1.get('getResponseHandler', [uri: url])
}
catch (e)
{
revokeAccessToken()
atomicState.accessToken=null
There are a number of methods that we don't support and probably never will support,, encodeAsBase64 is a grails extension and we have no plans to add grails.
Read the varous threads on getting end points, but feel like I've been navigating in the middle of a murky swamp, and could use a lifeline.
Attempting to get my app's endpoint(s) using Url with keypad as the path https://cloud.hubitat.com/api/<api>/apps/<appid>/keypad?access_token=<access-token>
You can PM me the url if you want so your information is not out in public. But looking at the mapping you reference, it appears that your url is not right. at the end you have /keypad?... but your mapping says you should have /keypost/<some command>?... I'm not sure what the possible values are for some command, you would have to look into the method that the mapping calls (api_pinpost)