iMessage推广(群发)技术实现

iMessage介绍

iMessage是苹果设备(iPad、iPhone、iPod touch)自带的免费信息发送应用。它的信息通过网络发送,不同于运营商短信。目前iMessage日活跃用户1.9亿,日发送约20亿条。

iMessage优势

iMessage与传统短信不同,具有以下优势:
  • 目标人群明确,均为苹果用户,消费能力较强
  • 文字数量不限,同时还可以添加表情和图片
  • 可以添加网址、下载链接等,用户可以直接通过手机访问
  • 不会被手机安全卫士拦截
  • 转发就像手机短信一样方便
  • 无发送成本
  • 送达终端的概率极高

iMessage推广技术实现

群发iMessage主要需要攻破两个技术难点,一个是iMessage账号的获取,另一个是群发iMessage。

iMessage账号获取

iMessage账号目前获取的方法主要是扫描手机号码。扫描手机号码可以通过代码自动扫描,也可以通过人工筛选。通过代码自动扫描本人暂未发现很好的方法,建议大家可以从以下两方面着手:
1.编写AppleScript脚本控制Mac OS自带的iMessage客户端进行验证,类似于群发iMessage。发送一条iMessage之后,如果捕获到发送失败的异常则不是iMessage账号
2.研究iOS系统中Message framework中的私有api,通过私有api进行验证

要进行人工筛选,也可以通过Mac OS自带的iMessage客户端。方法是编写程序,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。其中红色表示不是iMessage账号,蓝色表示iMessage账号以及未检验的账号。如图:
iMessage推广(群发)技术实现_第1张图片
检验过程中有可能会出现停止的现象,可以全选所有号码后,剪切再粘贴即可继续检验。

iMessage群发

检验完所有账号后,可以从中选取出iMessage账号进行群发。群发有两个方法,一个还是通过iMessage客户端,另一个是通过AppleScript脚本控制iMessage客户端发送。
通过iMessage客户端发送,可直接将号码粘贴至地址栏,填写内容,发送即可。
通过ApplseScript控制iMessage客户端的脚本如下:
[javascript] view plain copy print ?
  1. tell application "Messages"  
  2.     set csvData to read "/Users/xxxx/Desktop/test.csv"  
  3.     set csvEntries to paragraphs of csvData  
  4.     repeat with i from 1 to count csvEntries  
  5.         set phone to (csvEntries's item i)'s text  
  6.         set myid to get id of first service  
  7.         set theBuddy to buddy phone of service id myid  
  8.         send "今天北京晴,气温13到27度;周二晴,气温11到26度,北风3-4级;周三晴,气温11到24度,微风<3级" to theBuddy  
  9.     end repeat  
  10. end tell  
tell application "Messages"
	set csvData to read "/Users/xxxx/Desktop/test.csv"
	set csvEntries to paragraphs of csvData
	repeat with i from 1 to count csvEntries
		set phone to (csvEntries's item i)'s text
		set myid to get id of first service
		set theBuddy to buddy phone of service id myid
		send "今天北京晴,气温13到27度;周二晴,气温11到26度,北风3-4级;周三晴,气温11到24度,微风<3级" to theBuddy
	end repeat
end tell
以上代码可从一个csv文件中读取出iMessage账号,并通过iMessage客户端逐个发送iMessage消息。
需要注意如下问题:
1.由于该脚本是控制iMessage客户端进行发送,所以必须在MacOS 10.8以上(10.7系统中的iMessage Beta版本已无法使用)的系统中运行,同时开启iMessage程序。
2.该脚本在发送iMessage时并不是后台发送,所以当发送量很大时,会导致iMessage客户端运行缓慢,甚至无法开启。可通过清空所有已发送的iMessage或注销账号解决。
3.通过脚本发送的iMessage账号必须是在当前iMessage客户端中检验过的,否则会报“不能获得“buddy id "C0B35E7F-A0FB-49E1-BDD7-C867BC06D920:+86136xxxx0000"”。
 
 
转载自:
http://blog.csdn.net/zhaoxy_thu/article/details/9255165
 

你可能感兴趣的:(ios)