如何使用restfb从应用程序向用户发送消息?

时间:2017-02-04 05:49:47

标签: java facebook facebook-graph-api

我正在尝试使用restfb向喜欢该页面的人发送消息。使用图形API我得到了页面access_token和recipient_id。当我尝试发送它时,显示异常显示

线程中的异常" main" com.restfb.exception.FacebookOAuthException:收到类型为OAuthException的Facebook错误响应:验证访问令牌时出错:会话已于太平洋标准时间星期五03 - 2月17日03:00:00过期。当前时间是太平洋标准时间03-Feb-17 21:20:41 (代码190,子代码463)

但是当我尝试在图表中访问用户的详细信息时它工作正常。我做错了什么?..请帮助 提前谢谢....

java代码

import java.util.List;

import com.restfb.*;
import com.restfb.FacebookClient.AccessToken;
import com.restfb.exception.FacebookException;
import com.restfb.json.JsonObject;
import com.restfb.types.Conversation;
import com.restfb.types.Message;
import com.restfb.types.User;
import com.restfb.types.send.IdMessageRecipient;
import com.restfb.types.send.PhoneMessageRecipient;
import com.restfb.types.send.SendResponse;

import facebook4j.Facebook;

public class Fbsample {
public static void main(String[] argv) throws FacebookException
{
    FacebookClient facebookClient = new DefaultFacebookClient("***");
    User user = facebookClient.fetchObject("me", User.class);
    String name=user.getFirstName();
    String email=user.getEmail();
    String id=user.getId();
    System.out.println(name);
    System.out.println(id);
    JsonObject picture =    facebookClient.fetchObject("me/picture",JsonObject.class,Parameter.with("redirect","false"), Parameter.with("type","large"));
    System.out.println(picture);
    IdMessageRecipient recipient = new IdMessageRecipient("****");
    Message msg = new Message();
    msg.setMessage("Hello");

    String pageAccessToken ="***";

 // create a version 2.6 client
 FacebookClient pageClient = new DefaultFacebookClient(pageAccessToken, Version.VERSION_2_6);

 SendResponse resp = pageClient.publish("me/messages", SendResponse.class,
      Parameter.with("recipient", recipient), // the id or phone recipient
     Parameter.with("message", msg)); // one of the messages from above
 }
 }

这里没有真正的访问令牌和recipient_id,我现在给了*。还有一件事,我应该为页面或用户提供user_id或conversation_id和访问令牌?...

0 个答案:

没有答案