好的,这就是我想要做的,我想通过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脚本。
答案 0 :(得分:0)
您提出的问题是,对YouTube网络界面使用的JavaScript代码进行逆向工程,以便将其用于非预期目的。
支持使用YouTube数据API以编程方式发送邮件的方式:https://developers.google.com/youtube/2.0/developers_guide_protocol_messages
请勿尝试使用非官方机制发送消息。这可能是不可能的,如果可能的话,它可能会在未来的某个时刻意外突破。