为什么快播不能播放-数据库同步软件

skype无法登录
2023年4月5日发(作者:思科交换机命令)

Skype中文开发API文档

1

保密条款:本文件为SkypeTechnologiesS.A.公司所有,全部内容严格保密。本档仅在保密基础上提供

给被选中并符合条件的潜在

合作伙伴、客户或供货商,任何其他人一概不得使用。亦不得以任何形式加以复制、保存

、传播或备份。如收件人接受本档,即表示他或她同意,在终止与SkypeTechnologies

S.A.合作时,须将此档退还本公司。

他或她进一步同意,未经许可不得备份、传真、复制或传播所收到的、与本公司合作之业

务有关的任何文件。

本档不构成销售要约或招揽收购的要约。

©SkypeTechnologiesS.A3

1本文档编撰目的

介绍SkypeAPI并说明建置透过API与Skype沟通的应用程序和装置。

2版本修订纪录

2.1API

修订版:1.0.0.94

日期:2004-10-21

发行说明:API公开释出

修订版:1.1.0.61

日期:2005-01-12

发行说明:

•增加内容:协议3

•更新内容:API–现仅允许每个用户同时进行一项搜寻。在收到前一项搜寻

结果之前发出新的搜寻指令将导致错误72。

•更新内容:API现仅允许每个用户同时进行一项搜寻。

•更新内容:CHAT和CHATMESSAGE属性

•错误修正:API以前会显示前一位用户的通话和留言

•错误修正:修正了使用协议3时出现的语法混乱

•错误修正:SEARCHMESSAGES不再回传CHATMESSAGES值,

如果使用协议2的话

•错误修正:API以前仅显示讯息的第一个字或全名

•错误修正:访问控制列表(ACL)只记住一项程序的许可

•错误修正:MC信息标识符无法回传

•错误修正:与原有应用程序的链接问题

•错误修正:修正了在两个Windows账户下同时使用Skype

时出现的应用程序异常

•错误修正:Win98/Me中显示有许多动态链接库(dll)檔而不是各自的

应用程序在使用Skype

•错误修正:API有时不回传'BUDDYSTATUS1'讯息

修订版:1.2.0.11

Skype中文开发API文档

2

2005-03-04

发行说明:

•增加内容:协议4

•支持电话会议:召开电话会议、增加会议人数并能够获得参加会议者的

名单和有关通知

•可查看SkypeOut余额

•可拨打快速拨号单内的号码

•声频装置变更通知

•删除即时消息(IM)记录的通知

©SkypeTechnologiesS.A4

•将语言与国家选项修改为按国际标准国家代码(ISO)名单而非以国家

名称回传(新做法:从协议4开始,语言与国家回传值之前将加上ISO代码

('GETUSERecho123COUNTRY'=>'USERecho123COUNTRYee

Estonia'))

•关闭Skype的通知

•支持SkypeIn

•为了排除错误而将程序暂停一秒钟的登录机码

•可增加用户句柄至OPENADDAFRIEND

•CALLFAILUREREASON1–文件文件记录错误,文件文件改用"Miscerror"

(其他类错误)显示

•更新内容:如找不到CHATMESSAGE属性,'SETCHATMESSAGEid'

指令将发出同一错误讯息,而不论信息标识符是否存在

•更新内容:PSTN_STATUS发出从网关回传的错误字符串

•更新内容:HASCALLEQUIPMENT回传值永远显示TRUE

•错误修正:#11648API:"AUDIOIN"和"AUDIOOUT"指令不能正确读取

双字节驱动程序命名

•错误修正:#11473API:BTN_PRESSEDE指令失效,出现错误号码71

无效机码

•错误修正:#11472API:静音功能被启动

•错误修正:#11473API:初始设定参加电话会议人数超过4人

•错误修正:#11368API:IMHISTORYCHANGED指令无效

•错误修正:#11272API:MUTE指令无效

•错误修正:#11473API:无法使用快速拨号拨给SkypeOut联络人

•错误修正:#11473API:空白CALL指令无响应

•错误修正:#11204SKYPE存取应用程序编程接口不能拒绝存取装置。

•更新内容:#10567经由电话应用程序编程接口上下自动扩展联络人名单群组

•错误修正:#11473API:用户更换声频装置时不发出通知

2.2文件

修订版本日期修改人备注/更新内容

Skype中文开发API文档

3

-10-22TaavetHinrikusAPI公开释出

1.12005-01-12TaavetHinrikusSkype释出版本

1.22005-03-04TaavetHinrikus

Skype释出版本1.2,协议4,

开发工程师常见问题解

答项目等等

3法定地位

©SkypeTechnologiesS.A5

本API文件档和SkypeAPI均为SkypeTechnologiesS.A.或其关联公司版权所有。有关

使用限制请查阅Skype网站上登载的终端用户许可协议(EULA):

/go/eula

4简介

SkypeAPI可分为两个不同的部分。Skype电话API和Skype存取API:

•Skype电话API是Skype用来存取装置的接口,其中包括但不限于USB

电话。装置

本身并不一定是硬件,但通常指的是硬件装置。这一API由Skype控制,而且API

的装置面可被视作驱动程序。Skype为控制方。该API在抽象事件的层次上操作,

例如,绿色键被按下、耳机被拔掉、装置应响起铃声等。

与Skype电话API兼容的驱动程序,应在安装时中自动完成安装,这样Skype才会

知道其存在。可以建立一个

USB装置和相关驱动程序的数据库,使Skype能够侦测出新的装置并提示安装驱

动程序。

•Skype存取API是Skype发行给第三方第三方应用程序以存取Skype功能的

接口,例如,拨电话、发送文字讯息、索取Skype用户数据等。

第三方第三方应用程序在此API中为控制方。Skype可有选择性地逐一向应用程

式授予Skype存取API存取的权利。

5一般API概述

API是根据在Skype与装置(或装置驱动器或在主机上执行的控制器)之间往返传递的简

单文字讯息建立起来的。

6电话API

现已建置的电话API指令如下所列。

6.1从装置发至Skype

•NAMEdeviceName

•PROTOCOLversion

•AUDIO_INdeviceName

•AUDIO_OUTdeviceName

•HOOKON|OFF

•MUTEON|OFF

•BTN_PRESSED(0-9,A-Z,#,*,UP,DOWN,YES,NO,SKYPE)

Skype中文开发API文档

4

BTN_RELEASED...

6.2从Skype发至装置

•MUTEON|OFF

©SkypeTechnologiesS.A6

7存取API

目前有一些指令(PROTOCOL,AUDIO_*)可以用于Skype存取API和Skype电话API。

7.1使用介绍

当客户端应用程序经由SkypeAPI开始使用Skype时,Skype则会将声频装置转换到用户

端经由API所报告的装置。当传输层连结中止或被切断时,Skype则会将声频

装置转换回到上一次选取的装置(Skype将定期检测传输层是否仍然

保持连结)。如果用户将声频装置以手调方式转换到其他装置(与运行中的客户端所报告

的装置比对),将来可能会经由API提供通知。

可能会要求终端用户确认允许第三方利用API来使用Skype。所有使用API执行的

操作都会被反映到正在计算机执行的Skype应用程序上。

请注意,API的所有时间与日期均采用UTC(协调世界时)。

7.2支持多个客户端程序

多个客户端应用程序可以同时使用SkypeAPI。链接Skype时协议保持不变,以下情

况除外:建立通讯时,客户端应向系统中所有窗口广播窗口讯息('SkypeControlAPIDisc

over'),并用wParam参数指定本身窗口句柄。回应时,

Skype向指定的句柄发出'SkypeControlAPIAttach'的讯息,并在wParam参数中显

示出通话窗口句柄。

请注意,不应再采用'SkypeControlAPI'指令轮询Skype,我们将在下一个版本介绍

一种新的网络探测(pinging)指令。

7.3API的访问控制列表(ACL)

每当一个应用程序试图使用SkypeAPI时,就会弹出一个要求用户确认的对话窗口—

无论是否允许该程序使用API。这一功能的主要作用在于保护用户的隐私和安全。

为保持操作简便、易于用户使用,我们向开发人员建议如下:

•可执行程序(.exe檔)的命名应当通俗易懂,例如,"".

"",这一点非常重要,因为用户可以直接看到可执行文件案名称。

如果文件名含糊不清,用户就可能不允许该程序存取Skype。

•签名–应用程序应以VeriSign的CodesSigning(代码签字)证书签署。

•NAME指令–应用程序应支持"NAME"指令并应将其名称发表。

7.4SkypeOut

4SkypeTechnologiesS.A7

7.4.1SkypeOut联络人名单

可以索取SkypeOut联络人名单—这些数据现已成为主要名单的一部分,亦即

如果执行"SEARCHFRIENDS"指令,则会回传表内联络人名单号码。

如需得到目前用户的SkypeOut联络人号码的详细数据,可执行

"GETUSER"。

Skype中文开发API文档

5

SkypeOut联络人,"GETUSER

ONLINESTATUS"指令时将回传"SKYPEOUT"。

7.5怎样检测Skype

如需检测是否已安装Skype,请查看以下登录机码:

HKCUSoftwareSkypePhone'?SkypePath'。该机码将指出的位置。

如找不到该机码,还应查一下程序是否有

HKLMSoftwareSkypePhone'?SkypePath'此一机码(如找不到HKCU,但可找到

HKLM,则说明skype已经由管理员账号安装,但尚未被目前用户所使用)。

7.6版本信息

每次释出API的新版本时,协议版本号码都会增加。客户端要使用该API时,必须让Skyp

eAPI知道它所支持的最新版本。Skype将报出自己的最新版本号作为回答,并将以Skyp

e所报号码版本做为使用的协议版本。Skype报出的协议版本永远不会比客户端程序支持

的版本更高。Skype的默认版本是协议版本1。Skype支持的版本可以PROTOCOL

99999查询。

例如:客户端采用版本3,并向Skype报出"PROTOCOL

3",Skype支持版本2并报出"PROTOCOL

2"作为回答。版本2则为此例中使用的协议版本。

关于SkypeAPI版本更新和出现客户端支持低于Skype版本时的说明:

•Skype不但不会删除新版本发来的讯息,而且会执行讯息要求的指令

•客户端应会忽略未知指令和属性(可能来自新版本的API,如新状态属性等)

7.7SkypeAPI协议版本

目前有协议版本1、2和3。

7.7.1协议2新增功能

•新增onlinestatusSKYPEME。

5SkypeTechnologiesS.A8

•如通话处于暂候状态,API会分别向所有客户端发出"CALLxxSTATUS

LOCALHOLD/REMOTEHOLD"的通知。协定1仅回传ONHOLD。

•新增callstatusCANCELLED

7.7.2协议3新增功能

•多人聊天指令

•旧版即时消息(IM)的相容层

7.7.3协议4新增功能

•在语言和国家值前面补加ISO代码

协议1、2的兼容性

如要求的协议版本低于3,则所有导入指令均以下列方式被转换:

•SEARCHMESSAGES->SEARCHCHATMESSAGES

•SEARCHMISSEDMESSAGES->SEARCHMISSEDCHATMESSAGES

•GETMESSAGE->GETCHATMESSAGE

•SETMESSAGE->SETCHATMESSAGE

Skype中文开发API文档

6

GETMESSAGE属性也被转换:

•PARTNER_HANDLE->FROM_HANDLE

•PARTNER_DISPNAME->FROM_DISPNAME

所有对API发出的通知的回答(包括GET/SETMESSAGE)均被转换:

•CHATMESSAGE*FROM_HANDLEx->MESSAGE*

PARTNER_HANDLEx

•CHATMESSAGE*FROM_DISPNAMEx->MESSAGE*

FROM_DISPNAMEx

•CHATMESSAGE*FROM_DISPNAMEx->MESSAGE*

如协议版本低于3,SEARCHMESSAGES和SEARCH

MISSEDMESSAGES指令将回传字符串MESSAGES1、2、3。

7.8从Skype发至装置

7.8.1状态指令

所有这些指令均由Skype在初次建立连结或在出现参数更变时进行广播。可用GET

指令随时对它们进行查询。

用户状态

语法:USERSTATUSstatus

status-用户状态值。适用值:

•UNKNOWN.

•ONLINE-目前用户处于上线状态。

•OFFLINE-目前用户处于脱机状态。

•SKYPEME-目前用户正在使用"SkypeMe"模式(协议2)。

6SkypeTechnologiesS.A9

•AWAY-目前用户处于暂时离开状态。

•NA-目前用户离开。

•DND-目前用户处于“请勿打扰”模式。

•INVISIBLE-目前用户处于隐藏状态,其他用户看不见。

•LOGGEDOUT-目前用户已注销。用户已断线。

例如:USERSTATUSINVISIBLE

连结状态

语法:CONNSTATUSstatus

status–连结状态值。适用值:

•OFFLINE

•CONNECTING

•PAUSING

•ONLINE

•LOGGEDOUT-目前用户已注销。

例如:CONNSTATUSONLINE

目前用户句柄

Skype中文开发API文档

7

CURRENTUSERHANDLEuserhandle

例如:CURRENTUSERHANDLEbanana

7.8.2搜寻结果

这些是对SEARCH指令的响应。

将来会把搜索结果数目限制在N个

(N值可以被设定),但现在没有限制。今后可能支持传呼或自定范围查询。

用户搜寻

找到的用户名单。

语法:USERSuser1[,user2][,user3]

例如:USERSabc,-abc-,abc10

朋友搜寻

找到的朋友名单。

语法:USERSuser1[,user2][,user3]

例如:USERStim,joe,mike

通话搜寻

找到的通话标识符名单。

7SkypeTechnologiesS.A10

语法:CALLSid1[,id2][,id3]

例如:CALLS15,16,39

未接来电的搜寻

找到的未接来电标识符名单。

语法:CALLSid1[,id2][,id3]

例如:CALLS15,16,39

留言搜寻

找到的留言标识符名单。

语法:MESSAGESid1[,id2][,id3]

例如:MESSAGES15,16,39

错过的留言搜寻

找到的错过留言标识符名单。

语法:MESSAGESid1[,id2][,id3]

例如:MESSAGES15,16,39

聊天搜寻

找到的聊天标识符名单。

语法:CHATSid1[,id2][,id3]

例如:CHATS#test_2/$testtest20;54389d65f7d6f2c4,

#test_b/$testtest20;867c47704bcc71fb

进行中的聊天搜寻

找到的UI上开放的聊天标识符名单。

语法:CHATSid1[,id2][,id3]

Skype中文开发API文档

8

CHATS#test_2/$testtest20;54389d65f7d6f2c4,

#test_b/$testtest20;867c47704bcc71fb

错过的聊天搜寻

找到的含未读讯息的聊天标识符名单。

语法:CHATSid1[,id2][,id3]

例如:CHATS#test_2/$testtest20;54389d65f7d6f2c4,

#test_b/$testtest20;867c47704bcc71fb

最近的聊天搜寻

找到的最近聊天标识符名单。

语法:CHATSid1[,id2][,id3]

例如:CHATS#test_2/$testtest20;54389d65f7d6f2c4,

#test_b/$testtest20;867c47704bcc71fb

8SkypeTechnologiesS.A11

标注的聊天搜寻

找到的标注聊天标识符名单。

语法:CHATSid1[,id2][,id3]

例如:CHATS#test_2/$testtest20;54389d65f7d6f2c4,

#test_b/$testtest20;867c47704bcc71fb

7.8.3通知

如相应对象发生变化或以GET指令请求属性值,Skype则会发出通知。另外,如果属性值

被SET指令所更改,会发出通知,确认更改。

涉及相关对象时会发出通知,如好友名单(buddylist)内的用户、正在进行的通话和即

时讯息等。

"PROP"是对应对象的属性。

用户对象

就用户对象的属性发出通知。

语法:USERUSERNAMEPROPVALUE

USERNAME–用户名。

PROP-属性名。适用属性:

•HANDLE–用户名。例如:USERpamelaHANDLEpamela。

•FULLNAME–用户全名。例如:USERpamelaFULLNAMEJane

Doe.

•BIRTHDAY–以YYYYMMDD格式表示用户生日。例如:USERbitman

BIRTHDAY19780329.

•SEX–例如:USERpamelaSEXUNKNOWN.值:

•UNKNOWN–用户在个人资料内未注明性别。

•MALE

•FEMALE

•LANGUAGE–语言名称。例如:USERmikeLANGUAGE

Skype中文开发API文档

9

.协议4中采用ISO前置码,例如:USERmikeLANGUAGE

enEnglish.

•COUNTRY–国家名称。例如:USERmikeCOUNTRYEstonia.在

协议4中采用ISO前置码,例如:USERmikeCOUNTRYEstonia.

•PROVINCE–例如:USERmikePROVINCEHarjumaa.

•CITY–例如:USERmikeCITYTallinn.

•PHONE_HOME–例如:USERmikePHONE_HOME3721111111.

•PHONE_OFFICE–例如:USERmikePHONE_OFFICE3721111111.

•PHONE_MOBILE–例如:USERmikePHONE_MOBILE3721111111.

•HOMEPAGE–例如:USERmikeHOMEPAGEhttp://.

•ABOUT–例如:USERmikeABOUTIamaniceperson.

9SkypeTechnologiesS.A12

•HASCALLEQUIPMENT–回传值永远显示TRUE。例如:USERpamela

HASCALLEQUIPMENTTRUE.

•BUDDYSTATUS–例如:USERpamelaBUDDYSTATUS2.可设定的

BUDDYSTATUS值:

•0–从未列入联络人名单。

•1–已从联络人名单内删除。

•2–有待授权。

•3-已加入联络人名单。

•ISAUTHORIZED–已得到目前用户的授权。例如:USERpamela

ISAUTHORIZEDTRUE.值:

•TRUE

•FALSE

•ISBLOCKED–已被目前用户封锁。例如:USERspammerISBLOCKED

TRUE.值:

•TRUE

•FALSE

•DISPLAYNAME–例如:USERpamelaDISPLAYNAMEpam.

•ONLINESTATUS用户上线状态。例如:USERmike

ONLINESTATUSONLINE.值:

•UNKNOWN–未知用户。

•OFFLINE–用户处于脱机状态(未联机)。如果目前用户未经其他用

户授权而查看他/她的上线状态,也会回传此值。

•ONLINE-用户处于上线状态。

•AWAY–用户处于暂时离开状态(已有一定时间没活动)。

•NA-用户离开。

•DND-用户处于“请勿打扰”模式。

•SKYPEOUT–用户在SkypeOut联络人名单内。

Skype中文开发API文档

10

SKYPEME(协议2)

•LASTONLINETIMESTAMP-UNIX时间戳,仅供脱机用户查阅。例如:

USERmikeLASTONLINETIMESTAMP1078959579.

通话对象

就通话对象的属性发出通知。

语法:CALLIDPROPVALUE

ID–通话标识符。

PROP-属性名。适用属性:

•TIMESTAMP–通话的时间(UNIX时间戳)。例如:

CALL17TIMESTAMP1078958218

•PARTNER_HANDLE–例如:CALL17PARTNER_HANDLEmike

•PARTNER_DISPNAME–例如:CALL17PARTNER_DISPNAMEMike

Mann

10SkypeTechnologiesS.A13

•CONF_ID–如果CONF_ID>0,则为电话会议。例如:CALL17CONF_ID0

•TYPE–通话类型。例如:CALL17TYPEOUTGOING_PSTN.可设定的

TYPE值:

•INCOMING_PSTN–从PSTN接入的来电。

•OUTGOING_PSTN–向PSTN拨出的电话。

•INCOMING_P2P-从P2P接入的来电。

•OUTGOING_P2P–向P2P拨出的电话。

•STATUS–通话状态。例如:CALL17STATUSFAILED.可设定的

STATUS值:

•UNPLACED–从未打过的电话。

•ROUTING–通话正在转接中。

•EARLYMEDIA–

采用pstn,则可能在实际建立通话之前,已开始播放媒体。例如可以出现来

电铃声或待接留言(线路繁忙,请稍候)等。

•FAILED–

电话未接通。试图获得FAILUREREASON,以便了解详细原因。

•RINGING–电话铃正在响。

•INPROGRESS–通话正在进行中。

•ONHOLD–通话处于暂候状态。

•FINISHED–通话完毕。

•MISSED–未接到来电。

•REFUSED–来电被拒接。

•BUSY–对方电话占线,即已按下挂机键。

•CANCELLED(协议2)

•FAILUREREASON–例如:CALL17FAILUREREASON1(数字表示).

Skype中文开发API文档

11

SUBJECT–未使用。

•PSTN_NUMBER–例如:CALL17PSTN_NUMBER372123123.

•DURATION–例如:CALL17DURATION0.

•PSTN_STATUS–进行PSTN通话时从网关回传的错误字符串。

例如:CALL26PSTN_STATUS6500PSTNconnectioncreationtimeout.

•CONF_PARTICIPANTS_COUNT–

举行电话会议时非会议主持者的人数。可设定值:

•0–通话不属于电话会议。因为会议主持人CONF_PARTICIPANTS_COUNT

永远为0。

•1–通话是以前的电话会议。

•2,3,4–通话属于电话会议。

•CONF_PARTICIPANTn–

电话会议第n个参加者的句柄、通话类型与状态、以及参加者的姓名显示(仅限

非主持人)。例如:CALL59CONF_PARTICIPANT1echo123

INCOMING_P2PINPROGRESSEchoTestService.

11SkypeTechnologiesS.A14

MESSAGE物件

就讯息对象的属性发出通知。

语法:MESSAGEIDPROPVALUE

ID–讯息标识符。

PROP-属性名。适用属性:

•TIMESTAMP–讯息送出的时间(UNIX时间戳)。

例如:MESSAGE21TIMESTAMP1078958218

•PARTNER_HANDLE–例如:MESSAGE21PARTNER_HANDLEmike

•PARTNER_DISPNAME–例如:MESSAGE21

PARTNER_DISPNAMEMikeMann

•CONF_ID–未使用。

•TYPE–讯息类型。例如:MESSAGE21TYPETEXT.可设定的

TYPE值:

•AUTHREQUEST–请求授权。

•TEXT–即时消息或标题组。

•CONTACTS–联络人数据。

•UNKNOWN.—其他。

•STATUS–讯息状态。例如:MESSAGE21STATUSQUEUED.

可设定的STATUS值:

•SENDING–讯息正被发送。

•SENT–讯息已被发送。

•FAILED–

讯息发送失败。不妨发一个FAILUREREASON指令了解详细原因。

Skype中文开发API文档

12

RECEIVED–讯息已被接收。

•READ–讯息已被读取。

•IGNORED–讯息被忽略。

•QUEUED–讯息被列入待发队列。

•FAILUREREASON–例如:MESSAGE21FAILUREREASON1

(数字表示)。

•BODY–讯息内容主体。例如:MESSAGE21BODYHi,what'sup?

聊天讯息CHATMESSAGE对象

就聊天讯息对象的属性发出通知。

语法:CHATMESSAGEIDPROPVALUEID–聊天讯息标识符。

PROP-属性名。适用属性:

•TIMESTAMP–讯息送出的时间(UNIX时间戳)。

例如:MESSAGE21TIMESTAMP1078958218

•PARTNER_HANDLE–例如:CHATMESSAGE21

PARTNER_HANDLEmike

•PARTNER_DISPNAME–例如:CHATMESSAGE21

12SkypeTechnologiesS.A15

PARTNER_DISPNAMEMikeMann

•TYPE–讯息类型。例如:MESSAGE21TYPETEXT.可设定的

TYPE值:

•SETTOPIC–聊天题目变更。

•SAID–即时消息。

•ADDEDMEMBERS–邀请某人加入聊天。

•SAWMEMBERS–参加聊天者见过其他成员。

•CREATEDCHATWITH–已建立多人聊天。

•LEFT–有人已退出聊天;如某人不能被加入聊天,也会作通知。

•UNKNOWN.—其他。

•STATUS–讯息状态。例如:MESSAGE21STATUSQUEUED.

可设定的STATUS值:

•SENDING–讯息正被发送。

•SENT–讯息已被发送。

•RECEIVED–讯息已被接收。

•READ–讯息已被读取。

•LEAVEREASON–与LEFT类型讯息同时使用。例如:

CHATMESSAGE21LEAVEREASONUNSUBSCRIBE.可设定的

LEAVEREASON值:

•USER_NOT_FOUND–没有找到用户。

•USER_INCAPABLE–用户使用旧版Skype,因此无法加入多人聊天。

•ADDER_MUST_BE_FRIEND–

Skype中文开发API文档

13

•ADDED_MUST_BE_AUTHORIZED–

收件人仅接受授权用户发来的讯息,而发件人未经过授权。

•UNSUBSCRIBE–参加者已退出聊天。

•BODY–讯息内容主体。例如:CHATMESSAGE21BODYHi,what'sup?

•CHATNAME–含有讯息的聊天,例如:#test_3/$b17eb511457e9d20

•USERS–加入聊天的人。

CHAT对象(协议3)

就聊天对象的属性发出通知。

语法:CHATIDPROPVALUE

ID–聊天标识符。

PROP-属性名。适用属性:

•NAME–聊天标识符。例如:CHAT#test_l/$6a072ce5537c4044NAME

#test_l/$6a072ce5537c4044

•TIMESTAMP–聊天建立的时间。例如:CHAT

#test_l/$6a072ce5537c4044TIMESTAMP1078958218.

•ADDER–邀请目前用户加入聊天的用户。例如:CHAT

13SkypeTechnologiesS.A16

1078958218ADDERk6rberebane.

•STATUS–聊天状态。例如:CHAT#test_l/$6a072ce5537c4044

STATUSMULTI_SUBSCRIBED.可设定的STATUS值:

•LEGACY_DIALOG–老式即时消息。

•DIALOG–1对1聊天。

•MULTI_SUBSCRIBED–参加聊天者。

•UNSUBSCRIBED–退出聊天者。

•POSTERS–贴讯息的成员。例如:CHAT

#test_l/$6a072ce5537c4044POSTERSk6rberebanetest_3

•MEMBERS–所有来过的用户。例如:CHAT

#test_l/$6a072ce5537c4044MEMBERSk6rberebanetesttest_2

test_3

•TOPIC–聊天题目。例如:CHAT#test_l/$6a072ce5537c4044TOPIC

APItestimine

•CHATMESSAGES–这次聊天的所有讯息标识符。例如:CHAT

#test_l/$6a072ce5537c4044CHATMESSAGES34,35,36,38,39

•ACTIVEMEMBERS–留下来继续聊天的成员。例如:CHAT

#test_l/$6a072ce5537c4044ACTIVEMEMBERSk6rberebanetest_2

test_3

•FRIENDLYNAME–聊天窗口标题显示的姓名。例如:CHAT

#test_l/$6a072ce5537c4044FRIENDLYNAMETestTestXX|tereise

Skype中文开发API文档

14

通话记录

就通话记录变更并需要重载发出通知。在全部或部分通话记录被删除时出现。

语法:CALLHISTORYCHANGED

即时消息记录

就即时消息记录变更并需要重载发出通知。目前只在全部即时消息记录被删除时出现

语法:IMHISTORYCHANGED

联络人状态

如果有用户被加入联络人名单,或从中被删除,或已授权目前用户,即发出通知。

语法:USERusernameBUDDYSTATUSnumber

例如:用户已被加入联络人名单并有待授权。

USERpamelaBUDDYSTATUS2

用户已授权目前用户。

USERpamelaBUDDYSTATUS3

14SkypeTechnologiesS.A17

用户已从联络人名单内被删除。

USERpamelaBUDDYSTATUS1

7.8.4其他

可为Skype设定输入/输出装置。以空白名称设定装置时应选取Windows

默认装置。设定成功会得到AUDIO_*[装置名称]的确认。

目前正在运行的装置可以GETAUDIO_IN|AUDIO_OUT查询而知。

如默认装置被选取,AUDIO_*将回传一个空白回答。

声频输入设备

语法:AUDIO_IN[devicename](将淘汰)

SETAUDIO_IN[devicename]

例如:AUDIO_INSBAudigy2ZSAudio[DC00](将淘汰)

SETAUDIO_INSBAudigy2ZSAudio[DC00]

声频输出装置

语法:AUDIO_OUT[devicename](将淘汰)

SETAUDIO_OUT[devicename]

例如:AUDIO_OUTSBAudigy2ZSAudio[DC00](将淘汰)

SETAUDIO_OUTSBAudigy2ZSAudio[DC00]

7.9从装置发至Skype

7.9.1启动搜寻

SEARCHWHAT[target]请求与目标有关的具体信息类型。

如果没有指定目标,则会回传所有结果。

WHAT指定信息类型,可为下列的其中一项:USERS,

FRIENDS,CALLS,MISSEDCALLS,ACTIVECALLS,MESSAGES,

Skype中文开发API文档

15

协定3:CHATS,ACTIVECHATS,MISSEDCHATS,

RECENTCHATS,BOOKMARKEDCHATS,CHATMESSAGES,

MISSEDCHATMESSAGES).

注意:目前采用同步搜寻指令。今后可能会改变。

注意:下一项搜寻取代上一项搜寻。换言之,如果一项搜寻正在进行而又有一项搜寻被送

出,则第一项搜寻将终止搜寻。

搜寻朋友

语法:SEARCHFRIENDS

回传:如果找到配对吻合的结果,将回传一份用户名单。

15SkypeTechnologiesS.A18

例如:SEARCHFRIENDS

回传目前用户的所有朋友。结果举例:

USERStim,joe,mike

错误:ERROR67targetnotallowedwithSEARCHFRIENDS

目标是以指令SEARCHFRIENDS来指定的(如

"SEARCHFRIENDSmike")

搜寻用户

语法:SEARCHUSERSTARGET

TARGET–

用户名。如果搜寻字符串含"@",则搜寻按电子邮件地址进行(注意电子邮件地址必须100

%吻合)。否则,如果搜寻字符串为一个有效的Skype用户名(用户名必须有6至22个字符

,仅含以下符号:a-Z0-9-_,.

,而且必须以一个字母开头),该搜寻将按全名和用户名字段进行。所有其他搜寻仅按全

名字段进行。

回传:回传配对吻合的用户名。

例如:SEARCHUSERSabc

回传所有含"abc"的用户名。结果举例:

USERSabc,-abc-,abc10

错误:ERROR4emptytargetnotallowed

未指定目标用户名。

搜寻通话

语法:SEARCHCALLSTARGET

TARGET–

用户名。目标是可选项。如果指定目标,则会搜寻目前用户与目标用户之间的通话记录。

回传:回传一份通话标识符名单。

如果指定目标,则会回传目前用户与目标用户之间所有的以往通话标识符。

例如:SEARCHCALLSabc

结果举例:

CALLS15,16,39

Skype中文开发API文档

16

ERROR5SEARCHCALLS:目标无效

目标用户名中含禁用字符(如"SEARCHCALLS

!a")。用户名必须有6至22个字符并仅含以下符号:a-Z0-9-_,.。

搜寻进行中的通话

语法:SEARCHACTIVECALLS

列出所有通话卷标上显示的通话,如果主持电话会议,则包括所有参加会议的

成员。

16SkypeTechnologiesS.A19

回传:回传一份进行中的通话标识符名单。

例如:SEARCHACTIVECALLS

结果举例:

CALLS25,56

错误:ERROR3SEARCH:invalidWHAT

ACTIVECALLS拼字错误。

搜寻未接的来电

语法:SEARCHMISSEDCALLS

回传:回传一份未接来电的标识符名单,亦即显示处于MISSED状态的通话。

例如:SEARCHMISSEDCALLS

结果举例:

CALLS25,56

错误:ERROR29targetnotallowedwithMISSEDCALLS

使用SEARCHMISSEDCALLS时,不允许指定目标。

搜寻留言

语法:SEARCHMESSAGES[TARGET]

TARGET–

用户名。目标是可选项。如果指定目标,则会搜寻目前用户与目标用户之间的留言记录。

回传:回传一份讯息标识符名单。

如果指定目标,则会回传目前用户与目标用户之间所有的留言标识符。

例如:SEARCHMESSAGESabc

结果举例:

MESSAGES123,124

错误:ERROR29SEARCHMESSAGES:目标无效

目标用户名中含禁用字符(如"SEARCHMESSAGES!a")。用户名必须有6

至22个字符并仅含以下符号:a-Z0-9-_,.。

搜寻错过的留言

语法:SEARCHMISSEDMESSAGES

回传:回传一份留言标识符名单。

例如:SEARCHMISSEDMESSAGES

结果举例:

Skype中文开发API文档

17

错误:ERROR6targetnotallowedwithMISSEDMESSAGES

使用SEARCHMISSEDMESSAGES时,不允许指定目标。

搜寻聊天(协议3)

语法:SEARCHCHATS

回传:回传一份聊天标识符名单。

17SkypeTechnologiesS.A20

例如:SEARCHCHATS

结果举例:

CHATS#bitman/$jessy;eb06e65612353279,

#bitman/$jdenton;9244e98f82d7d391

错误:ERROR107targetnotallowedwithCHATS

使用SEARCHCHATS时,不允许指定目标。

搜寻进行中的聊天(协议3)

语法:SEARCHACTIVECHATS

回传:回传UI上开放的聊天标识符名单。

例如:SEARCHACTIVECHATS

结果举例:

CHATS#bitman/$jessy;eb06e65612353279,

#bitman/$jdenton;9244e98f82d7d391

错误:?

搜寻错过的聊天(协定3)

语法:SEARCHMISSEDCHATS

回传:回传一份含有未读内容的聊天标识符名单。

例如:SEARCHMISSEDCHATS

结果举例:

CHATS#bitman/$jessy;eb06e65612353279,

#bitman/$jdenton;9244e98f82d7d391

错误:?

搜寻最近的聊天(协议3)

语法:SEARCHRECENTCHATS

回传:回传一份最近的聊天标识符名单。

例如:SEARCHRECENTCHATS

结果举例:

CHATS#bitman/$jessy;eb06e65612353279,

#bitman/$jdenton;9244e98f82d7d391

错误:?

搜寻加标注的聊天(协定3)

语法:SEARCHBOOKMARKEDCHATS

Skype中文开发API文档

18

例如:SEARCHBOOKMARKEDCHATS

结果举例:

CHATS#bitman/$jessy;eb06e65612353279,

#bitman/$jdenton;9244e98f82d7d391

18SkypeTechnologiesS.A21

错误:?

搜寻聊天内容(协议3)

语法:SEARCHCHATMESSAGES[TARGET]

TARGET–用户名。目标是可选项。实际上用户从来都不用。

回传:回传一份聊天内容标识符名单。

例如:SEARCHCHATMESSAGESabc

结果举例:

CHATMESSAGES60,59

错误:ERROR29SEARCHCHATMESSAGES:目标无效

目标用户名中含禁用字符(如"SEARCHMESSAGES!a")。用户名必须

有6至22个字符并仅含以下符号:a-Z0-9-_,.。

搜寻错过的聊天(协定3)

语法:SEARCHMISSEDCHATS

回传:回传一份含有未读内容的聊天标识符名单。

例如:SEARCHMISSEDCHATS

结果举例:

CHATMESSAGES61,62

错误:ERROR29targetnotallowedwithMISSEDMESSAGES

使用SEARCH

MISSEDCHATMESSAGES时,不允许指定目标。

7.9.2索取参数值

GET指令是一般请求指令。一次可以用来求得任何已知对象的一种属性

(USER,CALL,MESSAGE,(PROTOCOL3:CHAT,

CHATMESSAGE))或一个一般变数(USERSTATUS,CONNSTATUS,

AUDIO_IN,AUDIO_OUT,CURRENTUSERHANDLE,

MUTE)。Skype则以适当的通知指令响应。

USER对象信息

语法:GETUSERUSERNAMEPROP

USERNAME–用户名。用户名必须有6至22个字符并仅含以下符号:a-Z0-9-_,.。

PROP-属性名。适用属性:

HANDLE,FULLNAME,BIRTHDAY,SEX,LANGUAGE,COUNTRY,

PROVINCE,CITY,PHONE_HOME,PHONE_OFFICE,PHONE_MOBILE,

HOMEPAGE,ABOUT,HASCALLEQUIPMENT,BUDDYSTATUS,

Skype中文开发API文档

19

LASTONLINETIMESTAMP

回传:如配对吻合,则回传指定用户的属性值。

19SkypeTechnologiesS.A22

例如:GETUSERpamelaFULLNAME

结果举例:

USERpamelaFULLNAMEJaneDoe

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETUSE")。

ERROR10invalidprop

标识符和/或属性不存在或拼字错误(如"GETUSERPamelaFULLNAM")。

ERROR8invalidhandle

USERNAME不存在或含禁用字符(如

"GETUSER!HANDLE")。

注意GETUSERUSERNAMEONLINESTATUS将回传

"OFFLINE",除非目前用户经其他用户授权,可以查看他/她的上线状态。

CALL对象信息

语法:GETCALLIDPROP

ID–通话标识符。

PROP-属性名。适用属性:

TIMESTAMP(UNIX时间戳),PARTNER_HANDLE,

PARTNER_DISPNAME,

CONF_ID,TYPE,STATUS,FAILUREREASON(数字表示),SUBJECT(未

used),PSTN_NUMBER,DURATION,PSTN_STATUS,

CONF_PARTICIPANT

n,CONF_PARTICIPANTS_COUNT

回传:如找到该笔通话,则回传指定通话的属性值。

例如:GETCALL1594TYPE

结果举例:

CALL1594TYPEOUTGOING_P2P

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETCAL")。

ERROR11invalidcallid

标识符含非数字字符(如"GETCALL15!")。

ERROR12unknowncallid

当前用户通话记录内没有带指定标识符的通话。

ERROR13invalidprop

属性名不存在或拼字错误(如"GETCALL15TYP")。

ERROR71InvalidconferenceparticipantNO

Skype中文开发API文档

20

"GET

CALL15CONF_PARTICIPANTkala","GETCALL15

CONF_PARTICIPANT5")

注意下述情形,如果隐蔽的通话被看到,亦即SEEN=FALSE变为SEEN=TRUE,

例如用户在Skype内点选了错过的来电,Skype将会通知API。

20SkypeTechnologiesS.A23

MESSAGE对象信息

语法:GETMESSAGEIDPROP

ID–讯息标识符。

PROP-属性名。适用属性:

TIMESTAMP(UNIX时间戳),PARTNER_HANDLE,

PARTNER_DISPNAME,

CONF_ID(未使用),TYPE,STATUS,FAILUREREASON(数字表示),BODY

回传:如找到该讯息,则回传指定讯息的属性值。

例如:GETMESSAGE159TYPE

结果举例:

MESSAGE159TYPETEXT

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETMESAGE")。

ERROR14invalidmessageid

标识符含非数字字符(如"GETMESSAGE1a")。

ERROR15unknownmessageid

目前用户讯息记录内没有带指定标识符的讯息。

ERROR16invalidprop

属性名不存在或拼字错误(如"GETMESSAGE21TYP")。

用户状态

语法:GETUSERSTATUS

回传:回传目前用户的状态。可设定值:

UNKNOWN,OFFLINE,ONLINE,SKYPEME(协定l2),AWAY,

NA,DND,INVISIBLE.

例如:GETUSERSTATUS

结果举例:

USERSTATUSONLINE

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETUSESTATUS")。

连结状态

语法:GETCONNSTATUS

回传:回传目前连结状态。可设定值:

OFFLINE,CONNECTING,PAUSING,ONLINE.

Skype中文开发API文档

21

GETCONNSTATUS

结果举例:

CONNSTATUSONLINE

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETCONSTATUS")。

21SkypeTechnologiesS.A24

声频输入设备

语法:GETAUDIO_IN

回传:回传目前为Skype设定的声频输入设备。

例如:GETAUDIO_IN

结果举例:

AUDIO_INSBAudigy2ZSAudio[DC00]

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETAUDO_IN")。

声频输出装置

语法:GETAUDIO_OUT

回传:回传目前为Skype设定的声频输出装置。

例如:GETAUDIO_OUT

结果举例:

AUDIO_OUTSBAudigy2ZSAudio[DC00]

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETAUDO_OT")。

目前用户句柄

语法:GETCURRENTUSERHANDLE

回传:回传目前用户的句柄。

例如:GETCURRENTUSERHANDLE

结果举例:

CURRENTUSERHANDLEbanana

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETCURENTUSERHANDLE")。

静音状态

语法:GETMUTE

回传:回传静音状态:MUTEON或MUTEOFF。如果没有通话处于

INPROGRESS状态中,MUTE永远处于OFF。

例如:GETMUTE

结果举例:

MUTEOFF

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETMUT")。

Skype中文开发API文档

22

语法:GETPRIVILEGE[PRIVILEGE]

PRIVILEGE–特权名。适用特权:

SKYPEOUT

22SkypeTechnologiesS.A25

回传:如用户有特权,则回传TRUE,否则回传FALSE。

例如:GETPRIVILEGESKYPEOUT

结果举例:

PRIVILEGESKYPEOUTTRUE

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETPIVILEGE")。

ERROR40unknownprivilege

特权拼字错误或不存在(如"GETPIVILEGE

SKYPEOUT").

用户数据

语法:GETPROFILE[PROP]

PROP–数据属性。适用属性:

PSTN_BALANCE–按欧分计算的SkypeOut余额。

PSTN_BALANCE_CURRENCY-SkypeOut货币。只可能使用的货币是

欧元。

回传:PSTN_BALANCE_CURRENCY回传PROFILE

PSTN_BALANCE_CURRENCYEUR,假如用户有SkypeOut特权的话。

否则会回传PROFILEPSTN_BALANCE_CURRENCY。

例如:GETPROFILEPSTN_BALANCE

结果举例:

PROFILEPSTN_BALANCE109

例如:GETPROFILEPSTN_BALANCE_CURRENCY

结果举例:

PROFILEPSTN_BALANCE_CURRENCYEUR

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETPROFIIL")。

ERROR10InvalidPROP

属性拼字错误或不存在(如"GETPROFILE

PSTN_BALANSS")。

Skype版本

语法:GETSKYPEVERSION

回传:回传Skype版本信息。

例如:GETSKYPEVERSION

结果举例:

Skype中文开发API文档

23

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GET

SKYPVERSION")。

23SkypeTechnologiesS.A26

CHAT对象信息(协议3)

语法:GETCHATIDPROP

ID–聊天标识符。

PROP-属性名。适用属性:

NAME,TIMESTAMP,ADDER,STATUS,POSTERS,MEMBERS,TOPIC,

CHATMESSAGES,ACTIVEMEMBERS,FRIENDLYNAME

回传:如果配对吻合,则回传指定聊天的属性值。STATUS

值:

LEGACY_DIALOG,DIALOG,MULTI_SUBSCRIBED,

UNSUBSCRIBED

例如:GETCHAT#bitman/$jessy;eb06e65635359671NAME

结果举例:

CHAT#bitman/$jessy;eb06e65635359671NAME

#bitman/$jessy;eb06e65635359671

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETCHTA")。

ERROR105invalidchatname

CHATNAME参数错误。

ERROR106invalidPROP

属性名不存在或拼字错误。

CHATMESSAGE对象信息(协议3)

语法:GETCHATMESSAGEIDPROP

ID–聊天内容标识符。

PROP-属性名。适用属性:

CHATNAME,TIMESTAMP,FROM_HANDLE,FROM_DISPNAME,TYPE,

USERS,LEAVEREASON,BODY,STATUS

回传:如果配对吻合,则回传指定聊天内容的属性值。

TYPE值:

SETTOPIC,SAID,ADDEDMEMBERS,SAWMEMBERS,

CREATEDCHATWITH,LEFT,UNKNOWN

LEAVEREASON值:

USER_NOT_FOUND,USER_INCAPABLE,

ADDER_MUST_BE_FRIEND,ADDED_MUST_BE_AUTHORIZED,

UNSUBSCRIBE

Skype中文开发API文档

24

值:

SENDING,SENT,RECEIVED,READ

例如:GETCHATMESSAGE60CHATNAME

结果举例:

CHATMESSAGE60CHATNAME

#bitman/$jessy;eb06e65631239671

24SkypeTechnologiesS.A27

错误:ERROR7GET:invalidWHAT

对象名不存在或拼字错误(如"GETCHTAMESSAGE60

CHATNAME")。

ERROR14invalidmessageid

聊天内容标识符含禁用符号(仅限使用数字记号)

(如"GETCHATMESSAGEa")

ERROR15unknownmessageid

未知聊天内容标识符。

ERROR16invalidPROP

属性名不存在或拼字错误(如"GETCHATMESSAGE60")。

7.9.3设定参数值

SET指令是一般更新指令。在语法上,该指令可用于对象(CALL,USER,

MESSAGE)和一般变数(USERSTATUS)。一次可以用来更新任何已知对象的一种

属性。Skype则响应以适当的通知指令作为一种确认方式。

注意:多数属性仅供「只读」。

CALL对象信息

语法:SETCALLIDPROPVALUE

ID–通话标识符(数字表示)。

PROP-属性名。可写入的通话属性:

•STATUS–给通话控制使用。适用值:

•ONHOLD–通话暂候

•INPROGRESS–接听来电或恢复通话

•FINISHED–挂断通话

•SEEN–设定来电已被看到,意思是某个错过的来电已被看到,并会

从错过的来电名单中删除。

•DTMF–将VALUE作为DTMF发送。VALUE中允许使用的符号是:

{0..9,#,*}.

•JOIN_CONFERENCE–将一个通话与另一个通话合并为电话会议。

VALUE为另一个通话的标识符。

回传:回传(新)属性值或错误信息。

例如:SETCALL15SEEN

结果举例:

Skype中文开发API文档

25

错误:ERROR18SET:invalidWHAT

对象名不存在或拼字错误(如"SETCAL")。

ERROR19invalidcallid

标识符含非数字字符(如"SETCALLA")。

ERROR20unknowncallid

25SkypeTechnologiesS.A28

带指定标识符的通话既不存在于目前用户通话记录之内,也不在进行中。

ERROR21unknownprop

设定值不正确或有拼字错误(如"SETCALL15STATUSONHOL")。

ERROR22cannothold

该通话不在进行中,所以无法暂候。

ERROR23cannotresume/answer

该通话不在进行中,所以无法恢复/接听。

ERROR24cannothangup

该通话不在进行中,所以无法挂断。

ERROR25invalidWHAT

属性名不存在或拼字错误(如"SETCALL15STATUONHOLD")。

ERROR72Cannotcreateconference

建立电话会议指令,如"SETCALL65JOIN_CONFERENCE

66",因某些原因而失败。

MESSAGE对象信息

语法:SETMESSAGEIDPROP

ID–讯息标识符(数字表示)。

PROP-属性名。可写入的讯息属性:

•SEEN–

指该条错过的即时消息已被看过,并会从错过的讯讯清单中删除。如果允许相关用

户组使用自动弹出功能,UI将自动设定该值。

回传:回传(新)属性值或错误信息。如果设定值没有改变,则回传目前的属性值。

例如:SETMESSAGE1578SEEN

结果举例:

MESSAGE1578STATUSREAD

错误:ERROR18SET:invalidWHAT

对象名不存在或拼字错误(如"SETCAL")。

ERROR30invalidmessageid

标识符含非数字字符(如"SETMESSAGEA")。

ERROR31unknownmessageid

目前用户讯息记录内没有带指定标识符的信息。

ERROR32invalidWHAT

Skype中文开发API文档

26

"SETMESSAGE21SEN")。

用户状态

语法:SETUSERSTATUSVALUE

VALUE-用户状态值。适用值:

•ONLINE–设定目前用户处于「上线」状态。

•OFFLINE–设定目前用户处于「脱机」状态。

•SKYPEME–设定目前用户处于"SkypeMe"状态(协议2)。

26SkypeTechnologiesS.A29

•AWAY–设定目前用户处于「暂时离开」状态。

•NA–设定目前用户处于「离开」状态。

•DND–设定目前用户处于「请勿打扰」状态。

•INVISIBLE–设定目前用户处于「隐藏」状态。

回传:回传(新)属性值或错误信息。

例如:SETUSERSTATUSINVISIBLE

结果举例:

USERSTATUSINVISIBLE

错误:ERROR18SET:invalidWHAT

USERSTATUS指令不存在或拼字错误(如"SETCAL")。

ERROR28SETUSERSTATUS:unknownstatus

未知或有拼字错误的用户状态值(如"SET

USERSTATUSRICH")。

静音状态

语法:SETMUTEVALUE

VALUE–设定打开或关闭静音。通话处于INPROGRESS状态时有效。

适用值:

•ON–设定静音开启

•OFF–设定静音关闭

回传:回传(新)属性值或错误信息。

例如:SETMUTEON

结果举例:

MUTEON

错误:ERROR18SET:invalidWHAT

静音指令不存在或拼字错误(如"SETMUT")。

ERROR33invalidparameter

未知或有拼字错误的静音值(如"SETMUTE

O")。

聊天内容状态

语法:SETCHATMESSAGEIDSEEN

ID–聊天内容标识符。

Skype中文开发API文档

27

例如:SETCHATMESSAGE61SEEN

结果举例:

CHATMESSAGE61STATUSSEEN

错误:ERROR18SET:invalidWHAT

CHATMESSAGE指令不存在或拼字错误(如"SETCHATMESSAGE")。

27SkypeTechnologiesS.A30

ERROR31unknownmessageid

未知聊天内容标识符。

ERROR30invalidmessageid

聊天内容标识符有拼字错误,即含禁用符号(仅限使用数字记号)(如"SET

CHATMESSAGEaSEEN")

ERROR32invalidWHAT

所设聊天内容状态无效(如"SETCHATMESSAGE60

SEENA")

7.9.4通话

语法:CALLTARGET[,TARGET2,TARGET3...]

TARGET–通话目标。如有多个目标,则会建立电话会议。

适用目标类型:

•USERNAME–用户名,如"pamela"

•PSTN–电话号码,如""

•SPEEDDIALCODE–1或2个字符的快速拨号代码

回传:回传通话标识符和状态。

例如:CALLpamela

结果举例:

CALL49STATUSROUTING

CALL49STATUSRINGING

CALL49STATUSREFUSED

错误:ERROR34invaliduserhandle

找不到目标用户名/电话号码(如"CALL")。

ERROR39userblocked

并非接不通电话,而是错误使用API—试图与被封锁的用户通话。

ERROR73toomanyparticipants

向4人以上启动通话(如"CALLtest,test_2,test_3,test_4,test_5")。

经由API拨号通话时,Skype窗口为焦点窗口。可以经由API使用快速拨号。

通话错误代码

代码说明:可能原因

1CALL181FAILUREREASON1其他类错误。

2CALL181FAILUREREASON2用户/电话号码

Skype中文开发API文档

28

置码(如,

正确号码为

"",

28SkypeTechnologiesS.A31

"+3725555555";错误号

码为"3725555555")。

3CALL181FAILUREREASON3用户脱机。

4CALL181FAILUREREASON4找不到代理服务器

5CALL181FAILUREREASON5呼叫中断。

6CALL181FAILUREREASON6找不到编解器。

7CALL181FAILUREREASON7音响输入/输出错误。

8CALL181FAILUREREASON8遥控

音响装置问题。

9CALL181FAILUREREASON9通话被接收方封锁。

10CALL181FAILUREREASON10接收方未被列为朋友。

11CALL181FAILUREREASON11目前用户未经过

接收方授权。

12CALL181FAILUREREASON12录音错误。

7.9.5发送讯息

语法:MESSAGEUSERNAMETEXT

•USERNAME–接收讯息方的用户名,如"pamela"

TEXT–讯息内容主体,如"Pleasecallme"

回传:回传讯息标识符和状态。

例如:MESSAGEpamelaPleasecallme

结果举例:

MESSAGE136STATUSSENDING

MESSAGE136STATUSSENT

错误:ERROR26invaliduserhandle

目标用户名不存在或含禁用符号(如

"MESSAGE")

MESSAGE138STATUSRECEIVED

如讯息发送失败,则会收到LEFT类型讯息。

讯息指令LEAVEREASON说明发送失败的原因。

28SkypeTechnologiesS.A32

7.9.6打开对话框

新增联络人

语法:OPENADDAFRIEND

例如:OPENADDAFRIEND

Skype中文开发API文档

29

错误:ERROR69invalidopenwhat

打开目标不存在或有拼字错误(如"OPENADDFRIEND")。

指令如成功将返回API。

即时消息

语法:OPENIMUSERNAME[MESSAGE]

USERNAME–接收讯息方的用户名,如"pamela"

MESSAGE–讯息内容主体,如"Pleasecall

me"。该值将被预先填入即时消息对话窗口。

例如:OPENIMjdentonTesting

弹出实时息息对话框,里面会有已填好的文字"Testing"作为其讯息内容。

错误:ERROR69invalidopenwhat

打开目标不存在或有拼字错误(如"OPENIN")。

ERROR70SETㄩinvalidhandle

用户名不存在或含禁用符号

指令如成功将返回API。

聊天

语法:OPENCHATTARGET[,TARGET2,TARGET3...]

TARGET–

加入聊天的用户名,如"pamela",如仅提供一个TARGET,则会打开一个对话框

回传:指令如成功则回传CHATidSTATUSSUBSCRIBED。

例如:OPENCHATjdenton,test_bi,pamela

"CHAT#name/$843934STATUS

SUBSCRIBED",聊天窗口将弹出,指定的成员列在窗口右边。

错误:ERROR69invalidopenwhat??.

ERROR70SETㄩinvalidhandle

用户名不存在或含禁用符号

指令如成功将返回API。

7.9.7Skype窗口焦点控制

语法:FOCUS

例如:FOCUS

29SkypeTechnologiesS.A33

把Skype窗口放在上面。

错误:ERROR2unknowncommand

FOCUS指令不存在或有拼字错误(如"FCOUS")。

7.9.8检测连结

语法:PING

回传:如与Skype接通,则回传PONG。

例如:PING

Skype中文开发API文档

30

错误:ERROR2unknowncommand

PING指令不存在或有拼字错误(如"PNIG")。

7.10错误代码

•ERRORCODE[DESC]

每次Skype发现包括语法不正确的指令、内在不一致性等错误条件时,就会对错误发出回

应。CODE是专门用来辨识错误条件的数字,而DESC则为选择性情况概述,以英文编写

目前被定义的错误代码如下:

代码说明:可能原因

1一般语法错误找不到指令(如,将""作为指令发出)

2未知指令指令拼字不正确(如,发出"GRT"而非"GET"

指令)

3搜寻:未知WHAT值找不到搜寻目标或有拼字错误

4不允许空白目标

5搜寻CALLS:目标无效禁用字符(如,"!","#","¤","€",""

(空格)

等)被用在目标用户名内(如,"SEARCHCALLS!a")。

6目标禁用于如,"SEARCHMISSEDCALLS

MISSEDCALLSecho123

7GET:无效WHAT值找不到对象/属性名或有拼字错误

8用户句柄无效找不到USERNAME或含有一个禁用字符

(如,"GETUSER!HANDLE")。

9未知用户

30SkypeTechnologiesS.A34

10PROP无效找不到属性名和/或标识符

或有拼字错误

11通话标识符无效找不到通话标识符或有拼字错误

(必须为数值)

12未知通话使用了不存在的通话标识符

13PROP无效回传到GET指令

CALLid

PARTNER_DISPLAYNAME.属性名不存在

或拼字错误

14讯息标识符无效GET–找不到讯息标识符或

有拼字错误(必须为数值)

15未知信息不存在的讯息标识符被用在

GET指令中

16PROP无效回传到GET指令

Skype中文开发API文档

31

PARTNER_DISPLAYNAME。找不到属性名

或有拼字错误

17不在使用中

18SET:无效WHAT值找不到属性名或

有拼字错误

19通话标识符无效找不到通话标识符或有拼字错误

(必须为数值)

20未知通话使用了不存在的通话标识符

21未知/禁用通话属性SETCALL值不正确或有拼字错误(如,

"SETCALL15STATUS

ONHOL")

22该通话现在无法暂候试图使不在进行中的通话暂候

23该通话现在无法恢复试图恢复/接听不在进行中的通话。

31SkypeTechnologiesS.A35

24无法挂断非使用中的通话试图挂断不在进行中的通话

25未知WHAT值找不到属性名或有拼字错误(如,"SET

CALL15STATU

ONHOLD")

26用户句柄无效找不到目标用户名或

含有禁用

符号(如"MESSAGE")

27无效版本号码

28未知用户状态未知或有拼字错误的

用户状态值(如,"SET

USERSTATUSRICH")。

29目标禁用于如,"SEARCHMISSEDMESSAGES

MISSEDMESSAGESecho123"

30讯息标识符无效SET–找不到讯息标识符或有拼字错误

(必须为数值)

31未知讯息标识符不存在的讯息标识符被用在

SET指令中

32无效WHAT值找不到属性或其中有拼字错误

33SETMUTE参数无效未知或有拼字错误的

静音值(如,"SETMUTEO")

34CALL用户句柄无效找不到目标用户名/电话号码

(如,"CALL")

35没有连结

36没有上线

Skype中文开发API文档

32

没有连结

38没有上线

39被用户封锁目的地用户被致电人封锁。也会出现在试

图致电给被封锁用户时。

32SkypeTechnologiesS.A36

40未知特权特权有拼字错误或不存在(如,

"GETPRIVILEGE

SKYPEOUT")。

41无通话状态处于闲置状态时,

试图发送DTMF

42无效DTMF代码发出无效DTMF代码。DTMF代码的

有效符号为{0..9,#,*}

43无法发送空白讯息被发送的讯息为空白讯息,

如,"MESSAGEecho123"。

66没有连结没有链接Skype,即用户

状态为"LOGGEDOUT"

67目标禁用于SEARCHFRIENDSSEARCH

FRIENDS有一个参数

68拒绝存取

69打开对象无效找不到OPEN指令或

TARGET拼字错误,如"OPENIN"

70无效句柄OPEN即时消息参数

USERNAME不存在或含禁用符号

71会议参加人数无效会议参加人的

数字过大或

无效。

72无法建立会议

73参加人太多召集四人以上

参加会议。

91内部错误无法拨打急救

号码

92内部错误所拨号码非有效

PSTN号码

93内部错误Skype名无效。

32SkypeTechnologiesS.A37

94内部错误无法拨打自己的号码

95内部错误目的地用户

在拨打后立即被致电人封锁

96内部错误拨出的电话处于

Skype中文开发API文档

33

状态

97内部错误内部错误

98内部错误内部错误

99内部错误内部错误

100内部错误内部错误

101内部错误打给目的地用户的电话

已经在通话中

103无法暂候内部错误

104无法恢复通话内部错误

105无效聊天名聊天名不存在或拼字错误

106PROP无效找不到属性名或

CHAT或CHATMESSAGE有拼字错误

107目标禁用于CHATS不允许设定参数于指令SEARCHCHATS

9901内部错误

7.11操作示范

->装置发至Skype

<-Skype发至装置

;说明

NB!实际传输采用utf-8编码。

;装置自行引进并说明已经就绪

->NAMEHandSet1.0

->PROTOCOL1

33SkypeTechnologiesS.A38

;->READY(尚未建置)

;Skype接受/启动装置

<-PROTOCOL1

;<-ENABLEYES(尚未建置)

;装置请求朋友名单

->SEARCHFRIENDS

;Skype以名单回应

<-USERSkaido,taavet,toivo

;装置请求朋友名单内所有人的全名

->GETUSERkaidoFULLNAME

->GETUSERtaavetFULLNAME

->GETUSERtoivoFULLNAME

;Skype以所求数据响应...

<-USERkaidoFULLNAMEKaidoKΣrner

<-USERtaavetFULLNAME

Skype中文开发API文档

34

-USERtoivoFULLNAMEToivoAnnus

;装置启动与kaido通话程序

->CALLkaido

;Skype显示各种接通状态

<-CALL122211STATUSROUTING

;同一时间,taavet脱机

<-USERtaavetONLINESTATUSOFFLINE

<-CALL122211STATUSRINGING

;Kaido接听电话

<-CALL122211STATUSINPROGRESS

;通话在进行中..

;装置现在决定挂断电话

->SETCALL122211STATUSFINISHED

;Skype确认..

<-CALL122211STATUSFINISHED

7.12操作示范:来电

->装置发至Skype

<-Skype发至装置

;说明

;Skype发出有来电的通知

<-CALL1594STATUSRINGING

;装置查询来电类型

->GETCALL1594TYPE

<-CALL1594TYPEINCOMING_P2P

;装置查询致电人的用户名,然后再查全名

->GETCALL1594PARTNER_HANDLE

34SkypeTechnologiesS.A39

<-CALL1594PARTNER_HANDLEcaller

->GETUSERcallerFULLNAME

<-USERcallerFULLNAMEanswerme

;装置表示接受(接听来电)

->SETCALL1594STATUSINPROGRESS

;Skype确认

<-CALL1594STATUSINPROGRESS

;Skype通告通话持续时间(在通话结束前完成)

<-CALL1594DURATION5

;Skype通告对方已挂断电话

<-CALL1594STATUSFINISHED

8API传输层

Skype中文开发API文档

35

API都没有联结在任何具体的传输层上。

8.1Windows讯息的API传输

目前仅对Windows讯息建置好API传输。在目前建置的传输中,外部一方处于活动状态

,并负责启动通讯。当任何一方无法发送任何讯息时,通讯应视作被中断。

启动通讯时,客户端应会向系统中所有窗口广播窗口讯息

('SkypeControlAPIDiscover'),并用wParam参数指定本身窗口句柄。为了回应,

Skype向指定的句柄发出'SkypeControlAPIAttach'讯息,并以下面的其中一项lPara

m参数值说明连结状态:

•SKYPECONTROLAPI_ATTACH_SUCCESS=

0:客户端链接成功,API窗口句柄可见于wParam参数;

•SKYPECONTROLAPI_ATTACH_PENDING_AUTHORIZATION=1:

Skype已确认链接请求并正在等候用户确认。尚未连结上客户端,并应等待SKYPE

CONTROLAPI_ATTACH_SUCCESS讯息;

•SKYPECONTROLAPI_ATTACH_REFUSED=2:用户明确拒绝客户端存取;

•SKYPECONTROLAPI_ATTACH_NOT_AVAILABLE=

3:API现在不供使用。例如,目前无用户登入时就会出现这种情况。

客户端试图进一步连结之前应等待SKYPECONTROLAPI_ATTACH_API_AVAILA

BLE广播。

API一旦可供使用,Skype则以设定值SKYPECONTROLAPI_ATTACH_API_AVAILABL

E=0x8001向系统的所有应用程序窗口广播SkypeControlAPIAttach讯息。

实际数据交换采用标准WM_COPYDATA讯息。被传送的数据是以Null结尾的utf-

8字符串指令(或响应)方式发出。注意结尾的0必须也要传送出去。不允许在一个讯息封包

内含多个讯息。传送的字符串长度不受此协议限制。

35SkypeTechnologiesS.A40

Skype在收到该讯息之后不会再封锁链接。如采用SendMessage()

发出的讯息失败,就表示通讯管道被切断。

注意:讯息处理结果(同时包括SkypeControlApiMessage和copydata)

不得为零,否则会被Skype视作连结中断!

API客户端装置处理API讯息的时间不得超过1秒钟,如超过1秒钟连结会被切断。使用PI

NG指令测试链接状态。为了便于在开发时进行程序排错,可将机码

APITimeoutDisabled(DWORDvalue,0=timeoutenabled1=timeout

disabled)填入

HKCUSoftwareSkypePhoneUI–使Skype不再强制执行1秒钟超时限制。

8.2Windows讯息的API传输:常见问题解答

Skype能保持我的SendMessage()指令有效多久?

Skype根本不保持SendMessage()指令继续有效(在正常情况下)。

应用程序应当等多久,才能重新发出指令?

多数指令应能在数微秒之内回传,搜寻指令需要的时间更久。每隔数秒可用PING指令测

试一下通讯管道是否畅通。

Skype中文开发API文档

36

SendMessage()?

可以,但由于窗口本身会强迫这些线程合并为单一线程,因此没有真正的差别。

8.3Windows讯息的API传输:将被淘汰

启用通讯时,客户端应向系统中所有窗口广播窗口讯息('SkypeControlAPI'),

并用wParam参数指定本身窗口句柄。为了回应,Skype向指定的句柄发出同样的讯

息,并用wParam参数指定通话窗口句柄。现在双方都知道发送讯息的窗口句柄了。

客户端应继续以'SkypeControlAPI'讯息轮询Skype,不断检查它是否仍处于可供使用的

连结状态。__

更多推荐

skype无法登录