问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有人知道imessage有私有api么

发布网友 发布时间:2022-06-03 13:53

我来回答

1个回答

热心网友 时间:2023-10-20 11:07

  iMessage账号目前获取的方法主要是扫描手机号码。扫描手机号码可以通过代码自动扫描,也可以通过人工筛选。通过代码自动扫描本人暂未发现很好的方法,建议大家可以从以下两方面着手:
  1.编写AppleScript脚本控制Mac OS自带的iMessage客户端进行验证,类似于群发iMessage。发送一条iMessage之后,如果捕获到发送失败的异常则不是iMessage账号
  2.研究iOS系统中Message framework中的私有api,通过私有api进行验证
  要进行人工筛选,也可以通过Mac OS自带的iMessage客户端。方法是编写程序,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。其中红色表示不是iMessage账号,蓝色表示iMessage账号以及未检验的账号。如图:

检验过程中有可能会出现停止的现象,可以全选所有号码后,剪切再粘贴即可继续检验。
  iMessage群发
检验完所有账号后,可以从中选取出iMessage账号进行群发。群发有两个方法,一个还是通过iMessage客户端,另一个是通过AppleScript脚本控制iMessage客户端发送。
  通过iMessage客户端发送,可直接将号码粘贴至地址栏,填写内容,发送即可。
  通过ApplseScript控制iMessage客户端的脚本如下:

  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"”。
  从上面转载的博文上可以看出来,这哥们主要是做了简单少数号码的尝试,没有真正大量群发过,但他在最后也提出了真正群发会遇到问题,三个问题解决方案如下:
  第一个问题用mac os系统或者黑苹果装10.8操作系统,会自带messages程序,这程序系统自带,千万不会发现打不开去删除Messages程序,删除就只能重装系统了。并且是先打开Messages程序,再启动apple script脚本,不然运行不正常。
  第二个问题,在发送过程中加入同步删除的代码,但同步一条一条删除时有时会失败,所以再增加发一定量后再批量删除一次的操作,正常的流程应该是打开Messages程序->循环号码库->读取一个号码->发送一条信息->等待1秒->删除此条信息->判断是否未删除的超过100条,是批量删除->循环号码库。这样就可以保证Messages程序不会去占百分一百多的CPU或者几个G的内存。

  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
delay 1 -延时一秒,不然取不到已发达的内容
set FailNum to (get count chat)
if FailNum>100 then
repeat with j from 1 to FailNum
set phone to (get name of chat (FailNum-j))
set DelMsg to "iMessage;-;" & phone
if exists (text chat id DelMsg) then
delete text chat id DelMsg
end if
end repeat
end if
end repeat
end tell

  第三个问题,在messages程序的imessage帐号中设置用来群发的imessage帐号。就没有问题了。

转载
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
福建南安都有哪些市场 端午节去南安旅行的线路有哪些值得分享? 南安有哪些特色商业街 把一个棱长是10厘米的正方体铁块熔铸成一个底面积是20厘米的圆锥形铁块... 把一块棱长10厘米的正方体铁块熔铸成一个底面直径是20厘米的圆柱形零件... 0x0438ef0指令引用的0x0438ef0内存.该内存不能为“read”的错误提示... SONY 索尼 DSC-RX100M5A 1英寸数码相机 黑色(8.8-25.7mm、F1.8) Vl... SONY 索尼 DSC-RX100M5A 1英寸数码相机 黑色(24-70mm、F1.8-F2.8)-购... 索尼RX100 M5A数码相机 索尼RX100 M5A数码相机:小巧便携,成像卓越 DXP2004的localization下面的勾选框勾选框在哪,还有Use localized resources又在哪? geolocalization是什么意思 qq华夏怎样快速升级呀? 汉译英(论文摘要翻译) 人工智能中的localization 是什么意思 有谁知道 ”本土化”一词的由来啊 谢谢 QQ华夏如何升级快?哪个能详细告诉我? 昆明印特美图文设计有限公司怎么样? 北京艺美图文快印有限公司怎么样? QQ华夏 怎么玩升级才快 一位家长晒出了一份“暑假账单”,孩子一个暑假花七八万,你怎么看? 真我手机的那个放大镜如何关掉 如何放大手机桌面图标 假期疯狂消费,你见识过哪些夸张的假期消费账单? 魅族手机充不了电怎么激活 唐李庵的著名景点 邹平县临池镇有什么名人没 邹平具好生镇石河村近代有什么历史人物 求绍兴传统文化的文章读后感 梁漱溟先生的墓为什么在他的故乡桂林? 哪位英语高手帮我翻译个文章 谢谢喽 (大体意思就行) 次密切者隔离7天能开店吗 如何培养目标导向思维 为什么只有3%的人才有清晰且长期的目标?关于人生目标的导向作用。 什么是轨道交通导向标志清晰完备? 淘宝开店考试题求解答18道(那些推销帮忙开店的慎重回复,发一个举报一个) 在国际市场中,企业应该如何把握正确的营销导向? 关于淘宝开店八大问题~不明白。。。求助 关于淘宝开店的提问? 关于艺术的论文 急需一篇关于艺术的论文 2012年8月22日,开店不到一年的“泰山卖油郎”李波坚持不卖良心只卖油的理念,销售额是翻着番的提高。为 怎么现在社会*的导向把性格划分得这么清晰,看到 内向孩子的潜在优势 这个内容,过分强调内向这一词 以下对于创业计划书描述正确的是 清晰的奋斗目标比什么都重要 艺术对人类的影响论文可以从各方面来谈。要求2000到2500字。跪求了。 大学一定要有清晰的目标吗 初一开店门见蛇盘8字形对房客有什么说法? 现在写作毫无头绪,写教学论文时如何才能做到思路清晰? 清晰的思维模式是什么样的?