Skip to content

Instantly share code, notes, and snippets.

@conradev
Last active August 15, 2016 22:07
Show Gist options
  • Save conradev/8c9c4be2b2d182830afa2def7a80eb41 to your computer and use it in GitHub Desktop.
Save conradev/8c9c4be2b2d182830afa2def7a80eb41 to your computer and use it in GitHub Desktop.
Pings your iPhone
import json
import base64
import urllib2
def main():
username = ""
password = ""
subject = "Important Message"
message = "This is a test"
authorization = 'Basic %s' % base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
headers = { 'Content-Type': 'application/json; charset=utf-8',
'X-Apple-Find-API-Ver': '2.0',
'X-Apple-AuthScheme': 'UserIdGuest',
'X-Apple-Realm-Support': '1.0',
'Authorization': authorization }
host = "fmipmobile.icloud.com"
path = "/fmipservice/device/" + username + "/"
endpoint = "initClient"
authRequest = urllib2.Request("https://" + host + path + endpoint, '', headers)
result = None
try:
urllib2.urlopen(authRequest)
except urllib2.HTTPError, error:
result = error
if (error.code != 330):
raise;
host = result.info()['X-Apple-MMe-Host']
endpoint = "initClient"
authRequest = urllib2.Request("https://" + host + path + endpoint, '', headers)
result = urllib2.urlopen(authRequest)
result = json.loads(result.read())
print "Sending message to " + result['userInfo']['firstName'] + " " + result['userInfo']['lastName'] + "'s devices..."
for device in result['content']:
maxMsgChar = int(device['maxMsgChar'])
preparedMessage = message[:maxMsgChar]
data = { 'device' : device['id'],
'subject' : subject,
'text' : preparedMessage,
'userText' : True,
'sound' : True };
endpoint = "sendMessage"
msgRequest = urllib2.Request("https://" + host + path + endpoint, json.dumps(data), headers)
urllib2.urlopen(msgRequest)
print " Sent to " + device['name'] + "!"
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment