【问题标题】:How to use new_direct_message with Net::Twitter::Lite如何在 Net::Twitter::Lite 中使用 new_direct_message
【发布时间】:2020-09-27 20:13:45
【问题描述】:

我正在尝试在脚本中使用一些 DM 功能和请求。 我的目标是参加一个活动,向选定的追随者发送 DM。

目前,我的工作代码是这样的:

#!/usr/bin/perl
use strict;
use warnings;

use Net::Twitter::Lite::WithAPIv1_1;

my $twitter = Net::Twitter::Lite::WithAPIv1_1->new(
    access_token_secret => 'XXX',
    consumer_secret     => 'XXX',
    access_token        => 'XXX',
    consumer_key        => 'XXX',
    user_agent          => 'Myself',
    ssl => 1,
);

my $user        = 'myself';
my $message_ack = "Hasta la vista, baby";
print "[sending: '$message_ack' to '$user'\n";

my $ack         = $twitter->new_direct_message($user, $message_ack);

我有以下回报:

# perl test.pl
[sending: 'Hasta la vista, baby' to 'myself'
new_direct_message expected 1 args at test.pl line 21.

我不明白,因为 CPAN 文档指出给定的 2 个参数是必需的:

new_direct_message(用户,文本)

参数:user、text、screen_name、user_id、include_entities

必需:用户,文本

从 验证用户。需要用户和文本参数。 成功时返回发送的消息。为了支持数字 屏幕名称,可以使用 screen_name 或 user_id 参数 而不是用户。

返回:DirectMessage

关于这个有什么提示吗?

我在这方面尝试了一些谷歌搜索,但没有发现任何真正有用的信息。在某些示例中,他们使用与我完全相同的东西(例如:第 85 行的http://www.sevagas.com/Real-time-system-alerts-using-Twitter-OAuth-implementation

【问题讨论】:

  • 文档似乎很混乱。只有text 被列为必填项,但它也说“需要用户和文本参数”。
  • 看看测试,也许你需要给它传递一个hashref? new_direct_message({ user => $uuser, text => $message_ack})

标签: perl twitter


【解决方案1】:

我只是用工具注释弄明白了。 所以,如果有人犯过同样的错误,那就有答案了:

不要使用

$twitter->new_direct_message($user, $message_ack);

但是

$twitter->new_direct_message({ user => $user, text => $message_ack });

看起来您必须传递一个 hashref,但我无法在文档中清楚地看到该提示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多