Jump to content

API returns wrong value for "hasSolutionChecker"


Recommended Posts

The API actually returns wrong value for "hasSolutionChecker"

 

Within a macro that already was doing a good job all the time the following line returns the value "false" instead of "true":

 

$data = gcapi2("geocaches/$d_Code?fields=referenceCode,hasSolutionChecker","GET")

 

it returns the following:

{"referenceCode":"GC99DTZ","hasSolutionChecker":false}

 

I tested it more times.

  • Helpful 2
Link to comment

I read about using the following call:

$data = gcapi2("geocaches/$d_Code?fields=referenceCode,hasSolutionChecker")

 

but the result is the same. So still no posibility to get the information, if the GC internal checker is active.

 

Please inform the API users, what's the problem and when it will be fixed.

Link to comment

additionally the request

, if the 'corrected coordinates' are correct returns with an error:

 

 

Quote

ChilkatLog:
  PostJson(1703ms):
    DllDate: Dec 27 2016
    ChilkatVersion: 9.5.0.65
    UnlockPrefix: GSAKNEHttp
    Architecture: Little Endian; 32-bit
    Language: ActiveX
    VerboseLogging: 1
    url: https://api.Groundspeak.com/v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode
    contentType: application/json
    jsonUtf8Size: 66
    finalizeRequestHeader:
      Auto-adding Host header.
    --finalizeRequestHeader
    fullRequest(1703ms):
      findAddHttpConn(16ms):
        GetIEProxySetting(16ms):
          RegistryQueryError: Das System kann die angegebene Datei nicht finden.
          ValueName: ProxyServer
          Failed to get key value
          valueName: ProxyServer
          Failed to read registry: CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ProxyServer
        --GetIEProxySetting
      --findAddHttpConn
      httpRequest:
        httpVersion: 1.1
        verb: POST
        path: /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode
        contentType: application/json
        charset: windows-1252
        sendCharset: 0
        mimeHeader: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Encoding: identity
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept-Language: en-us,en;q=0.5
Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU
Accept-Encoding: gzip
      --httpRequest
      HttpOptions:
        AddHostHeader: 1
        AllowCookieResponseCaching: 0
        AllowGzip: 1
        CookieDir: D:\#Daten\GSAK\cookies
        FollowRedirects: 1
        Login:
        LoginDomain:
        AuthMethod:
        MaxResponseSize: 0
        MaxUrlLen: 2000
        PasswordLen: 0
        ReadTimeoutMs: 45000
        RequiredContentType:
        ResumePoint: 0
        SaveCookies: 1
        SendBufferSize: 65535
        SendCookies: 1
        UnavailableRetryCount: 0
        UnavailableRetryWaitMs: 2000
      --HttpOptions
      a_synchronousRequest(1687ms):
        generateRequestHeader(15ms):
          httpRequestGenStartLine:
            authOnly: 0
            hasMimeBody: 1
            genStartLine:
              startLine: POST /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode HTTP/1.1
            --genStartLine
          --httpRequestGenStartLine
          startLine: POST /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode HTTP/1.1

          genHeaderSb:
            getMimeHeaderHttp:
              headerField: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
              headerField: Content-Encoding: identity
              headerField: Connection: keep-alive
              headerField: User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
              headerField: Accept-Language: en-us,en;q=0.5
              headerField: Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU
              headerField: Accept-Encoding: gzip
            --getMimeHeaderHttp
          --genHeaderSb
          addCookies(15ms):
            Auto-adding any accumulated cookies.
            CookieDir: D:\#Daten\GSAK\cookies
            CookieDomain: api.Groundspeak.com
            CookiePath: /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode
            loadCookieJar:
              Path: /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode
              GetDomainCookiesXml:
                CookieDir: D:\#Daten\GSAK\cookies
                Domain: api.Groundspeak.com
              --GetDomainCookiesXml
            --loadCookieJar
            AddingCookie: ASP.NET_SessionId=jrkpndqknaxare1pzfxgua14
          --addCookies
          m_host: api.Groundspeak.com
          finalRequestHdr: Content-Type: application/json
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Encoding: identity
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept-Language: en-us,en;q=0.5
Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU
Accept-Encoding: gzip
Cookie: ASP.NET_SessionId=jrkpndqknaxare1pzfxgua14
Host: api.Groundspeak.com
Content-Length: 66


        --generateRequestHeader
        fullHttpRequest(1672ms):
          domain: api.Groundspeak.com
          port: 443
          ssl: 1
          openHttpConnection(969ms):
            GetIEProxySetting:
              RegistryQueryError: Das System kann die angegebene Datei nicht finden.
              ValueName: ProxyServer
              Failed to get key value
              valueName: ProxyServer
              Failed to read registry: CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ProxyServer
            --GetIEProxySetting
            Opening connection directly to HTTP server.
            httpHostname: api.Groundspeak.com
            httpPort: 443
            ssl: 1
            bUsingHttpProxy: 0
            httpProxyAuthMethod:
            socket2Connect(969ms):
              connect2(969ms):
                hostname: api.Groundspeak.com
                port: 443
                ssl: 1
                connectImplicitSsl(969ms):
                  Clearing TLS client certificates.
                  connectSocket(329ms):
                    domainOrIpAddress: api.Groundspeak.com
                    port: 443
                    connectTimeoutMs: 45000
                    connect_ipv6_or_ipv4(250ms):
                      Multi-threaded domain to IP address resolution
                      resolveHostname6(62ms):
                        Resolving domain name (IPV4/IPV6)...
                      --resolveHostname6
                      connecting to IPV4 address...
                      ipAddress: 63.251.163.198
                      createSocket:
                        Setting SO_SNDBUF size
                        sendBufSize: 262144
                        Setting SO_RCVBUF size
                        recvBufSize: 4194304
                      --createSocket
                      connect(188ms):
                        Waiting for the connect to complete...
                        myIP: 192.168.178.24
                        myPort: 56899
                        socket connect successful.
                      --connect
                    --connect_ipv6_or_ipv4
                  --connectSocket
                  clientHandshake(562ms):
                    The client cert chain is NULL.
                    cacheClientCerts:
                      Cached TLS client certificates.
                      Client cert chain is NULL.
                    --cacheClientCerts
                    clientHandshake2(562ms):
                      readHandshakeMessages(188ms):
                        processHandshakeRecord:
                          processHandshakeMessage:
                            processServerHello:
                              negotiatedTlsVersion: TLS 1.2
                              negotiatedCipherSuite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
                              minAcceptableRsaKeySize: 1024
                            --processServerHello
                          --processHandshakeMessage
                        --processHandshakeRecord
                      --readHandshakeMessages
                      buildClientKeyExchange(31ms):
                        buildClientKeyExchangeECDHE(31ms):
                          verifyServerKeyExchange:
                            verifyHash:
                              keyType: Public
                              hashInSize: 32
                              padding: PKCS v1.5
                              HashOid: 2.16.840.1.101.3.4.2.1
                            --verifyHash
                          --verifyServerKeyExchange
                          Verified server key exchange.
                          generateNewKey_ecc(16ms):
                            loadCurveByName:
                              name: secp256r1
                            --loadCurveByName
                          --generateNewKey_ecc
                          loadSshPubKey:
                            loadCurveByName:
                              name: secp256r1
                            --loadCurveByName
                          --loadSshPubKey
                        --buildClientKeyExchangeECDHE
                      --buildClientKeyExchange
                    --clientHandshake2
                  --clientHandshake
                  checkServerCert:
                    Not verifying server certificate...
                    Set the RequireSslCertVerify property to enable verification.
                  --checkServerCert
                  SSL/TLS Channel Established.
                --connectImplicitSsl
              --connect2
            --socket2Connect
            Turning on TCP_NODELAY.
            socketOptions:
              SO_SNDBUF: 262144
              SO_RCVBUF: 4194304
              TCP_NODELAY: 1
              SO_KEEPALIVE: 1
            --socketOptions
            HTTPS secure channel established.
          --openHttpConnection
          connectTime: Elapsed time: 969 millisec
          startLine: POST /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode HTTP/1.1
          fullRequestHeader:
            requestHeader: Content-Type: application/json
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Encoding: identity
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept-Language: en-us,en;q=0.5
Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU
Accept-Encoding: gzip
Cookie: ASP.NET_SessionId=jrkpndqknaxare1pzfxgua14
Host: api.Groundspeak.com
Content-Length: 66
          --fullRequestHeader
          computeRequestDataSize:
            Request body is in a memory buffer..
          --computeRequestDataSize
          sendRequestHeader:
            sendHeaderElapsedMs: 0
          --sendRequestHeader
          sendRequestBody:
            idleTimeoutMs: 45000
            sendBodyElapsedMs: 0
          --sendRequestBody
          readResponseHeader(265ms):
            responseHeader: HTTP/1.1 204 No Content
CorrelationGuid: ea0e4a71-98ab-44b2-bd27-ff64fa7b2b8d
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Sat, 04 Dec 2021 06:03:37 GMT


          --readResponseHeader
          statusCode: 204
          statusText: No Content
          readResponseBody:
            bDiscard: 0
            Response has no content-length.
            No response body to receive...
          --readResponseBody
          responseBodySize: 0
        --fullHttpRequest
        originalUrl: https://api.Groundspeak.com:443/v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode
        success: 1
      --a_synchronousRequest
      success: 1
    --fullRequest
    Success.
  --PostJson
  urlObject_loadUrl:
  --urlObject_loadUrl
--ChilkatLog

 

 

What is the problem here?

Link to comment
7 hours ago, Bl4ckH4wkGER said:

Your issue is that you are trying to query straight for a child parameter hasSolutionChecker but are not including the necessary parent parameter geocacheType to first narrow it down to Mystery Caches.

 

If you make the right call, you will get the desired result.

He is asking the API for the cache GC99DTZ with the field hasSolutionChecker and gets the reply "false" even though the cache got a Solution Checker, referenceCode (GC99DTZ) is the only requirement.
I don't see any other requirement in the documentation, and it worked until a few days before Magalodon's first post.

  • Helpful 2
Link to comment

That's exactly the point: "...it worked until a few days before Magalodon's first post." - it worked for more than the last past year, all the time. So the question is: What has been changed on the server side, maybe in the database?!!!

 

This is not an acceptable answer or an explanation, why it is not working, but I will try to make a workaround.

 

So, please, have a look, why the behavior of the API changed and repair it.

  • Helpful 2
Link to comment

The workaround is:

    $data = gcapi2("geocaches/$d_code?fields=referenceCode,geocacheType,hasSolutionChecker")

 

I have to add 'geocacheType' in the API request, in order to get the CORRECT answer, if there is a soultion checker otherwise the return value is always 'false'.

 

So only the question, why the behavior of ther API changed is open... and please change this in the API documentation.

"it is required to add the field 'geocacheType' in the API call."

  • Helpful 2
Link to comment
6 hours ago, Megalodon said:

What for am I paying 30€ a year?

 

I first started paying $30 a year for a premium membership in 2002.  Back then, that got me a small number of pocket queries, access to PMO caches, and some bells and whistles here in these forums.  I mainly paid $30 to support the website.

 

There were no bookmark lists, no instant notifications, no premium mapping or search features, no favorite points, no Adventure Labs to create, no Waymarking categories to create, no smartphone apps and no API.

 

Premium members now have all these things, plus other features. Yet, the cost remains constant at $30 per year.  None of my other bills have remained unchanged since 2002.  I find this amazing, especially since I would still be happy to pay the $30 for the 2002 feature set. 

 

So, that is what you are paying $30 a year for.

 

By the way, the internal Geochecker continues to work just fine for me.  I don't have a use case for leveraging the API for this purpose.  I am not good enough at solving puzzles to have a need to use the Geochecker other than manually on the cache page.

  • Love 1
Link to comment
Quote

I am not good enough at solving puzzles to have a need to use the Geochecker other than manually on the cache page.

 

yes, that's YOU, but I want to use the API function in a self written macro, in order to check the coordinates again before I go outside and find the boxes...

 

You also absolutely right, that constant was none of my other bills the past years.... but it is enough, just respect the number of premium geocachers... They only have to pay fpr the servers and their maintenance. and by the way: I would have introduced more and better stuff on the webpage during 20 yeras...

Link to comment
On 2/14/2022 at 10:11 PM, The Leprechauns said:

 

I first started paying $30 a year for a premium membership in 2002.  Back then, that got me a small number of pocket queries, access to PMO caches, and some bells and whistles here in these forums.  I mainly paid $30 to support the website.

 

There were no bookmark lists, no instant notifications, no premium mapping or search features, no favorite points, no Adventure Labs to create, no Waymarking categories to create, no smartphone apps and no API.

 

Premium members now have all these things, plus other features. Yet, the cost remains constant at $30 per year.  None of my other bills have remained unchanged since 2002.  I find this amazing, especially since I would still be happy to pay the $30 for the 2002 feature set. 

 

So, that is what you are paying $30 a year for.

 

By the way, the internal Geochecker continues to work just fine for me.  I don't have a use case for leveraging the API for this purpose.  I am not good enough at solving puzzles to have a need to use the Geochecker other than manually on the cache page.

 

This is an interesting line of thought.  How should people feel satisfied with what they pay? While the benefits of using the website have changed over time, the marketing has also changed.  If someone signed up as a charter member should they expect less as they service was less developed when they bought in.  Or should someone who thought the $30 was too much for the 2002 features be limited to the features of when they signed up? And then how do you handle users who would have decided the $30 was too much until they discovered a new feature was available? It is certainly an interesting question.

 

With increased privacy rules, some features that people may have used are being removed for legal compliance.  Should people receive a refund? 

 

As for other bills, should this be compared to life insurance which has generally gone down or utilties which have generally gone up? 

 

This all makes me glad I am not a product manager.

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...