gpt4 book ai didi

perl - 我如何使用 Perl 的 WWW::Facebook::API 发布到用户的新闻源?

转载 作者:行者123 更新时间:2023-11-30 05:22:12 25 4
gpt4 key购买 nike

我们在网站上结合使用 Facebook Connect 和 WWW::Facebook::API CPAN 模块在用户请求时向我们的用户发布新闻源。

到目前为止,我们已经能够使用以下代码成功更新用户的状态:

use WWW::Facebook::API;
my $facebook = WWW::Facebook::API->new(
desktop => 0,
api_key => $fb_api_key,
secret => $fb_secret,
session_key => $query->cookie($fb_api_key.'_session_key'),
session_expires => $query->cookie($fb_api_key.'_expires'),
session_uid => $query->cookie($fb_api_key.'_user')
);

my $response = $facebook->stream->publish(
message => qq|Test status message|,
);

但是,当我们尝试更新上面的代码时,我们可以发布包含附件和操作链接的新闻源故事,如 Facebook API 文档中指定的 Stream.Publish ,我们已经尝试了大约 100 种不同的方法,但都没有成功。

根据CPAN documentation我们所要做的就是将我们的代码更新为如下所示,并适本地传递附件和操作链接,但这似乎不起作用:

my $response = $facebook->stream->publish(
message => qq|Test status message|,
attachment => $json,
action_links => [@links],
);

例如,我们按如下方式传递上述参数:

$json = qq|{ 'name': 'i\'m bursting with joy', 'href': ' http://bit.ly/187gO1', 'caption': '{*actor*} rated the lolcat 5 stars', 'description': 'a funny looking cat', 'properties': { 'category': { 'text': 'humor', 'href': 'http://bit.ly/KYbaN'}, 'ratings': '5 stars' }, 'media': [{ 'type': 'image', 'src': 'http://icanhascheezburger.files.wordpress.com/2009/03/funny-pictures-your-cat-is-bursting-with-joy1.jpg', 'href': 'http://bit.ly/187gO1'}] }|;
@links = ["{'text':'Link 1', 'href':'http://www.link1.com'}","{'text':'Link 2', 'href':'http://www.link2.com'}"];

以上以及我们尝试过的任何其他表示似乎都不起作用。我希望其他一些 perl 开发人员可以正常工作,并可以解释如何在 Perl 中适本地创建附件和 action_links 变量,以便通过 WWW::Facebook::API 发布到 Facebook 新闻提要。

预先感谢您的帮助!

最佳答案

我认为问题在于您的 JSON 字符串可能无效。我能够通过使用 JSON::Any 来让它工作序列化 Perl 数据结构而不是手动构建 JSON 字符串。 (WWW::Facebook::API 在后台使用 JSON::Any;如果它可以采用 Perl 数据结构而不是 JSON 字符串,那就太好了。我将在本周末尝试提交一个补丁。)

use WWW::Facebook::API;
use JSON::Any;

my $j = JSON::Any->new;

my $fb = WWW::Facebook::API->new(
desktop => 0,
api_key => $api_key,
secret => $secret,
session_key => $session,
session_expires => $expires,
session_uid => $fb_uid
);

my $res = $fb->stream->publish(
message => 'Test message',
attachment => $j->objToJson(
{ name => 'Foo bar baz',
href => 'http://www.google.com/',
description => "this is a thing"
} ),
action_links => $j->objToJson(
[ { text => 'action link text',
href => 'http://www.foobar.com/'
} ] )
);

结果:

http://www.friedo.com/fb_attach.jpg

关于perl - 我如何使用 Perl 的 WWW::Facebook::API 发布到用户的新闻源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2654965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com