如何在Net :: Twitter :: Lite中使用new_direct_message

时间:2016-06-14 14:39:32

标签: perl twitter

我试图在脚本中使用一些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

有关此问题的任何提示吗?

我已经尝试过google了一下,我发现没有什么真正有用的。在某些例子中,他们使用与我完全相同的东西(例如:第85行的http://www.sevagas.com/Real-time-system-alerts-using-Twitter-OAuth-implementation

1 个答案:

答案 0 :(得分:1)

好。我只是用工具评论来解决它。 所以,如果有人犯了同样的错误,那就是答案:

不要使用

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

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

你会没事的。

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

由于