如何通过Youtube API手动发送消息?

时间:2012-12-24 13:44:19

标签: javascript variables youtube-api message

好的,这就是我想要做的,我想通过Youtube手动发送消息,使用javascript。我试图找到在Youtube API中发送消息的最后一行代码,然后能够自己执行。

我不想只输入

inbox.sendMessage();

进入JavaScript控制台。

以下是我目前所知道的:

处理消息的外部js文件: http://s.ytimg.com/yts/jsbin/www-inbox-vflCOzV-o.js

开始发送消息的功能是

inbox.sendMessage();

当调用此函数时,调用应用于变量m.va的函数。 该功能有两个重要部分: 收集消息输入值的部分:

var b=H("compose_message").value;

(H是一个基本上等于document.getElementById的函数)

,第二个重要部分是函数发送编译信息时:

W(this,a,"send_message",h)

上面的函数编译(主题,消息,附件等)中的信息并通过将信息发送到引用为this.st的数组(this.stpush(f))来发送它们。被称为,f是已编译的信息。)

以下是上述函数调用中信息的排列方式:

a.o = H("user_ext_ids").value;
a.p = H("compose_to").value;
a.V = this.a; (global variable unknown to me)
a.U = H("field_reference_video").value;
a.k = H("compose_subject").value;
a.e = H("compose_message").value;

函数W将上述内容编译成一个新变量:f如下:

f.to_user_external_ids = H("user_ext_ids").value;
f.to_users = H("compose_to").value;
f.in_reply_to = this.a; (global variable unknown to me)
f.video_id = H("field_reference_video").value;
f.subject = H("compose_subject").value;
f.message_text = H("compose_message").value;

一旦函数W如上所述将信息编译到f,它就会将其推送到数组的末尾,我假设它是某种行为队列,或者是与其他动作一起发送的信息包。

这是推送信息的代码:

a.t.push({type:c,request:f});

这些是上述代码行的参考:

a = this.s; (Originally equalled this, when W was called by the first function, but is was changed to this at the beginning of W)
c = "send_message"; (I am guessing this is the part telling the script that the action is sending the message)
f - this is the compiled information that I mapped out above.

我设法找到了什么this.s.t被设置为,但我被困在那之外。

this.s=new pb(a);

变量s设置为此功能。函数pb(a)可以通过Ctrl-F'ing找到:

function pb(a)

与我在这里引用的大多数函数和变量一样。

在pb(a)的范围内,变量this.t被初始化:

this.t=[];

我还发现,在同一个函数中,this.s = new pb(a);发生,this.s涉及另一个函数,它是唯一的另一个时间“this.s”(小s,而不是大写)在整个脚本中引用,而不是a = a.s;以下是它引用的函数:

var c=R(R(R(R(R(R(R(R(R(R(this.s,"accept_message",this.v,this),"accept_messages",this.v,this),"block_user",this.v,this),"delete_message",this.v,this),"delete_messages",this.v,this),"display_messages",this.W,this),"ignore_message",this.v,this),"ignore_messages",this.v,this),"mark_as_spam",this.v,this),"send_message",this.Y,this);

这是我能得到的,现在我完全被难倒了。任何帮助将不胜感激,我需要能够到达实际发送消息的最后一行代码,并且没有其他任何引用,所以我可以手动发送消息,JavaScript独立于此脚本。

<小时/> 问题:您能否帮我找到发送邮件的最后一行代码,以便我可以手动发送邮件,其中JavaScript独立于此js脚本。

1 个答案:

答案 0 :(得分:0)

您提出的问题是,对YouTube网络界面使用的JavaScript代码进行逆向工程,以便将其用于非预期目的。

支持使用YouTube数据API以编程方式发送邮件的方式:https://developers.google.com/youtube/2.0/developers_guide_protocol_messages

请勿尝试使用非官方机制发送消息。这可能是不可能的,如果可能的话,它可能会在未来的某个时刻意外突破。