Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Manvendra
Level 9

Is there any way to find zip code through user location on roku?

I need to build a feature in my app, where i need to show some content based on zip-code. Is there any way to find user location and ultimately find zip code?

0 Kudos
6 Replies
chaklasiyanikun
Level 11

Re: Is there any way to find zip code through user location on roku?

I don't know if there is a inbuilt way. But, you can use external API. you can find zip code by Passing a IP Address. This is not a good way. Currently, Roku not Blocking any External API may be in Future like IOS. I hope this is helpful

0 Kudos
Manvendra
Level 9

Re: Is there any way to find zip code through user location on roku?

@chaklasiyanikun Thanks for the reply. This is the same i have tried, but results are not very accurate with ip address.

0 Kudos
chaklasiyanikun
Level 11

Re: Is there any way to find zip code through user location on roku?

@Manvendra It depends on API. I tried many API. and Found There is not a single one that gives an accurate result. But, I suggest one API which is better than all other. I'm not sure this is giving accurate result. But better than other API. I hope this is helpful.

0 Kudos
Manvendra
Level 9

Re: Is there any way to find zip code through user location on roku?

@chaklasiyanikun Thanks. I will look into it.

0 Kudos
norcaljohnny
Level 11

Re: Is there any way to find zip code through user location on roku?

This is very doable but as you and another user said, you need an external api and more importantly, one that is reliable in accuracy.

I can only recommend one api that has been flawless in which I use for weather features on the Roku and web apps.

You can see a demo with the response on page load and get a free api at https://ipstack.com/

Now we add a little bit of. code.

 

deviceInfo = CreateObject("roDeviceInfo")
ip = deviceInfo.GetExternalIp()
url = "http://api.ipstack.com/" + ip + "?access_key=yourIpStacksApiKey"

m.locationData = createObject("roSGNode", "locationDataReader")
m.locationData.contenturi = url
m.locationData.observeField("content", "locationDataResponse")
m.locationData.control = "RUN"


Create a task

 

 

<?xml version = "1.0" encoding = "utf-8" ?>
<component name = "locationDataReader" extends = "Task" >

  <interface>
    <field id = "contenturi" type = "uri" />
    <field id = "content" type = "node" />
  </interface>

  <script type = "text/brightscript" >

    <![CDATA[

     sub init()
       m.top.functionName = "getContent"
     end sub

' **********************************************

    sub getContent()
      apiurl = m.top.url
      m.port = CreateObject ("roMessagePort")
      dataRequest = CreateObject("roUrlTransfer")
      dataRequest.setURL(apiurl)
      dataRequest.EnableEncodings(true)
      https = "https:"
      if LCase(Left(apiurl, Len(https))) = https
        dataRequest.SetCertificatesFile ("common:/certs/ca-bundle.crt")
        'dataRequest.AddHeader ("X-Roku-Reserved-Dev-Id", "")
        dataRequest.InitClientCertificates ()
      end if
      response = dataRequest.getToString()
'the data will returned as json and you can decide to parse or use regex to get the zipcode
zipRegex = CreateObject ("roRegex", "zip.:.(\d+).,.latitude", "")

if zipRegex.isMatch(response)
zipcode = zipRegex.Match(response)
'if the regex returned data
print zipcode
end if
'print the whole json response
print response end sub ]]> </script> </component>

 

 

Manvendra
Level 9

Re: Is there any way to find zip code through user location on roku?

@norcaljohnny Thank you so much. I will try this for sure.