2012-12-24 33 views
2

好吧,这是我想要做的,我想通过手动发送一条消息,使用javascript手动。我试图找到在Youtube API中发送消息的最后一行代码,然后可以自己执行。如何手动通过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) 

上述功能编译的信息(主题,消息,附件,以等),并通过发送.push它们关闭 - 荷兰国际集团的信息引用到一个引用为this.s.t的数组(this.s.t.push(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.st是什么被设置为,但我超出了这一点。

this.s=new pb(a); 

变量s被设置为该函数。该功能PB(一)可以通过按Ctrl-F'ing发现:

function pb(a) 

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

内部PB的范围(a)中,可变this.t被初始化:

this.t=[]; 

我还发现,该this.s相同功能的内=新PB(一);发生时,这与另一个函数有关,它是唯一的其他时间,在整个脚本中引用“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脚本。

+0

是......看起来像一个非常规划的问题.... **但是**我没有看到问题! – Neal

回答

0

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

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

请不要尝试发送使用非官方机构的消息。这可能是不可能的,如果可能的话,它可能会在未来的某个时候突然中断。