Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java+;restfbapi:在不影响AppID、appSecret的情况下获取新的页面访问令牌 我想做的是:_Java_Facebook_Facebook Graph Api_Restfb - Fatal编程技术网

Java+;restfbapi:在不影响AppID、appSecret的情况下获取新的页面访问令牌 我想做的是:

Java+;restfbapi:在不影响AppID、appSecret的情况下获取新的页面访问令牌 我想做的是:,java,facebook,facebook-graph-api,restfb,Java,Facebook,Facebook Graph Api,Restfb,我试图制作一个简单的程序,在页面的墙上一次发布5-10个状态。必须以页面的名称发布到该页面 我已经阅读了大量写得很糟糕的Facebook开发者文档,我已经到了困惑的地步,甚至不知道该问什么问题。我就是她 到目前为止,我的代码是: 我通过以下方法手动获取页面访问令牌: 去 在下面的GET申请表上,填写我/账户 您将获得基本用户数据的Javascript表示。找到你想要的页面 注意access_token和id字段,我们将在下面的代码中使用它们 因此,在手动获取页面访问令牌(当然还有页面ID)之后

我试图制作一个简单的程序,在页面的墙上一次发布5-10个状态。必须以页面的名称发布到该页面

我已经阅读了大量写得很糟糕的Facebook开发者文档,我已经到了困惑的地步,甚至不知道该问什么问题。我就是她


到目前为止,我的代码是: 我通过以下方法手动获取页面访问令牌:

  • 在下面的GET申请表上,填写我/账户
  • 您将获得基本用户数据的Javascript表示。找到你想要的页面
  • 注意access_token和id字段,我们将在下面的代码中使用它们
  • 因此,在手动获取页面访问令牌(当然还有页面ID)之后


    问题是: 上面的代码可以工作。问题是,它可以临时工作。我获取的
    页面访问令牌
    的过期时间为一小时,每次运行程序时,我都需要手动完成获取该令牌的过程。如果我将流程的某些方面保留为手册,那么自动化流程的意义何在

    因此,我必须问您:我能否以编程方式执行上述过程,并在程序启动时获得一个新的
    页面访问令牌

    我可以,也许,使用一个更好的API来做一些简单的事情,比如每天在一个页面的墙上张贴一些东西吗

    我的应用程序是一个控制台应用程序,我希望不要实现不必要的登录,即使你告诉我这是必要的,这将是一个麻烦,我将不得不通过


    请注意:我已经在Facebook开发者那里注册了这个应用程序,尽管它只是一个基本的应用程序。要获得更多权限,我需要出示Facebook登录实现的证明,正如我在标题中所说,这是我必须避免的。

    没有自动获取访问令牌的过程。如果有,它将破坏OAuth流的整个目的。对于pet项目和测试,可以使用Graph API Explorer,但对于涉及用户的公共应用程序,用户必须手动选择登录对话框

    在当前场景下,可以使用此处提到的方法扩展用户令牌

    场景5:页面访问令牌

    当用户授予应用程序“管理页面”权限时,该应用程序可以 为用户管理的页面获取页面访问令牌 查询[User ID]/accounts图形API端点。随着移民 已启用,当使用短期用户访问令牌查询此 端点时,获得的页面访问令牌也是短期的

    将短期用户访问令牌交换为长期访问令牌 使用前面介绍的端点和步骤的令牌

    通过使用 长寿命用户访问令牌,查询[user ID]/accounts端点 现在将为以下页面提供不会过期的页面访问令牌: 用户管理。这也适用于使用非过期的 通过不推荐的脱机\u访问获得的用户访问令牌 允许

    仅由应用程序所有者使用的简单程序不需要Facebook的批准


    e、 g.

    谢谢你的澄清,伙计。2015年快乐!
    import com.restfb.DefaultFacebookClient;
    import com.restfb.FacebookClient;
    import com.restfb.Parameter;
    import com.restfb.exception.FacebookException;
    import com.restfb.types.FacebookType;
    import com.restfb.types.Page;
    import com.restfb.types.User;
    
    /**
     *
     * @author dsfounis
     */
    public class FacebookConnector {
    
        /* Variables */
        private final String pageAccessToken = "GOT_THIS_FROM_THE_METHOD_ABOVE";
        private final String pageID = "THIS_TOO";
        private FacebookClient fbClient;
        private User myuser = null;    //Store references to myr user and page
        private Page mypage = null;    //for later use. In this question's context, these
                                       //references are useless.
        private int counter = 0;
    
        public FacebookConnector() {
            try {
    
                fbClient = new DefaultFacebookClient(pageAccessToken);
                myuser = fbClient.fetchObject("me", User.class);
                mypage = fbClient.fetchObject(pageID, Page.class);
                counter = 0;
            } catch (FacebookException ex) {     //So that you can see what went wrong
                ex.printStackTrace(System.err);  //in case you did anything incorrectly
            }
        }
    
        public void makeTestPost() {
            fbClient.publish(pageID + "/feed", FacebookType.class, Parameter.with("message", Integer.toString(counter) + ": Hello, facebook World!"));
            counter++;
        }
    
    }
    
    https://graph.facebook.com/oauth/access_token?             
        client_id=APP_ID&
        client_secret=APP_SECRET&
        grant_type=fb_exchange_token&
        fb_exchange_token=EXISTING_ACCESS_TOKEN