So I was reviewing my server logs this morning (Yes, I’m a geek — it’s what I do.) and I noticed an interesting entry…
GET /productId=IP14882/frameId=184820da466bcc29ccc5da3620389a26933950e3/sk1=DB7B067C7B8BC66FE49A67DE8D268183D867DA5CF0376662F62CDD5FCA5A0D1B/channellist HTTP/1.1" 404 356 "-" "TTCatalog-iPad/3.0 CFNetwork/485.13.9 Darwin/11.0.0"
There are several interesting bits here…
productId=IP14882
The product ID field is used to communicate what make/model photo frame is trying to connect with the service; In this case it is ‘IP14882’. I use this information to determine the native screen size of the frame and to track if it supports custom Photo RSS feeds. So far I have 14 unique productIDs in the database.
frameId=184820da466bcc29ccc5da3620389a26933950e3
FrameId is used to unqiuely identify individual photo frames. Some manufactures use the MAC address of the frame, others use a simple numeric serial number. This one is larger than most.
sk1=DB7B067C7B8BC66FE49A67DE8D268183D867DA5CF0376662F62CDD5FCA5A0D1B
Huh… I don’t know where to begin on this bit. First time I’ve seen it in a frame request. Anyone?
Update: I’ve re-read the FrameChannel Integration Guide and discovered that this is the SecurityKey. It is described as:
SECURITYKEY is an encrypted string used to validate that the URL is coming from a genuine partner device. The security key is an HMACSHA256 digest (as defined in RFC 2104) of the combination of PRODUCTID-FRAMEID (exactly in that order separated by a single hyphen character), using a secret 32-character key provided by Thinking Screen Media for each productId supplied. IMPORTANT: the secret key should be considered confidential information, and should not be shared or exposed to the public. A leak of the security key will require an Frame Media, Inc. Page 2 of 4 Company Confidentialimmediate firmware update by the device partner.
channellist
I’m assuming that this bit indicates that the frame is looking for a list of channels available (Thank you Dr. Obvious). However, I have no notion of the format it is expecting in return. Anyone?
And now for the really interesting bit…
"TTCatalog-iPad/3.0 CFNetwork/485.13.9 Darwin/11.0.0"
Well Hellllooooo iPad! I knew that FrameChannel had an iPad application/widget/thingy but this is my first example request. Many thanks to the intrepid soul who fiddled with their DNS and sent in this request.
Now… If I could just figure out how to respond to a channelList request… Anyone? Bueller? Anyone?