Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Manvendra
Binge Watcher

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 6
chaklasiyanikun
Roku Guru

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
Binge Watcher

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
Roku Guru

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
Binge Watcher

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

@chaklasiyanikun Thanks. I will look into it.

0 Kudos
norcaljohnny
Roku Guru

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
Binge Watcher

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.

Need Assistance?
Welcome to the Roku Community! Feel free to search our Community for answers or post your question to get help.

Become a Roku Streaming Expert!

Share your expertise, help fellow streamers, and unlock exclusive rewards as part of the Roku Community. Learn more.