我正在为一个促进手语的慈善机构工作,他们希望每天将视频发布到他们的FB页面.视频数量很大(且不断增长),因此他们希望以编程方式安排上传.我真的不介意我最终在做什么编程语言,但是我尝试了以下内容并没有走得太远:
Perl使用WWW::Facebook::API(旧的REST API)
my $res = $client->video->upload(
title => $name,
description => $description,
data => scalar(read_file("videos/split/$name.mp4"))
);
Run Code Online (Sandbox Code Playgroud)
身份验证没问题,这正确地发布了一个facebook.video.upload方法https://api-video.facebook.com/restserver.php.不幸的是,这会返回"方法未知".我认为这与弃用的REST API有关.
Facebook::Graph在Perl或fb_graphRuby中的gem.(OAuth API)
我甚至无法进行身份验证.这两个都面向网络而不是OAuth的桌面应用程序,但我认为我应该能够做到:
my $fb = Facebook::Graph->new(
app_id => "xxx",
secret => "yyy",
postback => "https://www.facebook.com/connect/login_success.html"
);
print $fb->authorize->extend_permissions(qw(publish_stream read_stream))->uri_as_string;
Run Code Online (Sandbox Code Playgroud)
在我的浏览器中转到该URL,捕获code返回的参数,然后
my $r = $fb->request_access_token($code);
Run Code Online (Sandbox Code Playgroud)
不幸:
Could not fetch access token: Bad Request at /Library/Perl/5.16/Facebook/Graph/AccessToken/Response.pm line 26
Run Code Online (Sandbox Code Playgroud)同样在Ruby中,使用fb_graph,
fb_auth = FbGraph::Auth.new(APP_ID, APP_SECRET)
client = fb_auth.client
client.redirect_uri = "https://www.facebook.com/connect/login_success.html" …Run Code Online (Sandbox Code Playgroud)我正在努力让我的头脑围绕着LPEG.我已经设法制作了一个符合我想要的语法,但是我一直在反对这个语法并且没有走远.我们的想法是解析一个简化形式的TeX文档.我想将文档分成:
\begin{cmd}和\end{cmd}成对的.\foo{bar}或者可以是裸的:\foo.\command[color=green,background=blue]{content}.我还想跟踪行号信息以便进行错误处理.这是我到目前为止所拥有的:
lpeg = require("lpeg")
lpeg.locale(lpeg)
-- Assume a lot of "X = lpeg.X" here.
-- Line number handling from http://lua-users.org/lists/lua-l/2011-05/msg00607.html
-- with additional print statements to check they are working.
local newline = P"\r"^-1 * "\n" / function (a) print("New"); end
local incrementline = Cg( Cb"linenum" )/ function ( a ) print("NL"); return a + 1 end , "linenum"
local …Run Code Online (Sandbox Code Playgroud)