小编Sim*_*ens的帖子

获取命令行(桌面)应用程序的Facebook身份验证令牌

我正在为一个促进手语的慈善机构工作,他们希望每天将视频发布到他们的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)

ruby perl facebook facebook-graph-api

21
推荐指数
2
解决办法
5157
查看次数

使用lpeg解析类似TeX的语言

我正在努力让我的头脑围绕着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)

lua lpeg

3
推荐指数
1
解决办法
378
查看次数

标签 统计

facebook ×1

facebook-graph-api ×1

lpeg ×1

lua ×1

perl ×1

ruby ×1