我试过这个简单的例子,以便在Facebook上发送消息:
$ conda install pyqt=4.11.4
$ conda install qt=4.8.7
但我收到错误
public void testSomeMethod()
{
String token = "XXXXXX";
FacebookClient facebookClient = new DefaultFacebookClient(token, Version.LATEST);
IdMessageRecipient recipient = new IdMessageRecipient("123456");
Message message = new Message("Just a simple text");
SendResponse resp = facebookClient.publish("me/messages", SendResponse.class,
Parameter.with("recipient", recipient), // the id or phone recipient
Parameter.with("message", message)); // one of the messages from above
}
你能提出一些解决方案吗?
答案 0 :(得分:1)
我在两小时前解决了这个问题:)使用“ {conversation_id} / messages ”代替“ me / messages ”。您可以使用以下代码获取 conversation_id :
Connection<Conversation> conversations = pageClient.fetchConnection("me/conversations", Conversation.class);
for (List<Conversation> conversationPage : conversations) {
for (Conversation conversation : conversationPage) {
String id = conversation.getId(); //use this conversation_id
Connection<Message> messages = pageClient.fetchConnection(id + "/messages", Message.class, Parameter.with("fields", "message,created_time,from,id"));
messages.forEach(s -> s.forEach(k -> System.out.println(k.getFrom() + " " + k.getId() + " " + k.getMessage() + " " + k.getSubject() + " ")));
}
}
以下代码适合我:
FacebookClient pageClient = new DefaultFacebookClient(pageAccessToken, Version.VERSION_2_6);
IdMessageRecipient recipient = new IdMessageRecipient("{user_id}");
String conversationId = “t_mid.14XXX.. : XXX...” ;
SendResponse resp = pageClient.publish(conversationId +"/messages", SendResponse.class,
Parameter.with("recipient", recipient),
Parameter.with("message", "Uraaaa!!!"));