java - ChromeDriver for Facebook 在 JAVA 中登录?

标签 java facebook facebook-graph-api restfb

我一直在我的java程序上使用facebook登录功能。 我正在关注this tutorial .

在本教程中,需要将 chromedriver 包含到特定项目文件夹中才能打开 Facebook 登录页面。 由于我使用的是 Captain casa 框架,所以我无法做到这一点。它给了我一个错误

java.lang.IllegalStateException: The driver executable does not exist: C:\EnterpriseClientRISC\server\chromedriver.exe

但我不被允许把 Chrome 物放在那里。

是否有其他方法可以在不使用 chromedriver 的情况下将 facebook 登录页面弹出到另一个窗口中?

我看到了其他结合 javascript 的教程,但我不允许在我的 Captain casa 框架中这样做。

这是我的

try {
            Statusbar.outputSuccessWithPopup("before anything else").setLeftTopReferenceCentered();
            String domain = "https://dev-ecom.partnersbusiness.solutions/";
            String appId = "1830823116979050";

            String authUrl = "https://graph.facebook.com/oauth/authorize?type=user_agent&client_id="+appId+"&redirect_uri="+domain+"&scope=user_about_me,ads_management, ads_read email, pages_manage_cta, pages_show_list";


            //TODO SET CHROMEDRIVER HERE
            setNewProperty("webdriver.chrome.driver", "chromedriver.exe");

            WebDriver driver = new ChromeDriver() {
            };

            driver.get(authUrl);
            String accessToken;

            Statusbar.outputSuccessWithPopup("before while").setLeftTopReferenceCentered();

            //Note, wa kaabot after sa login here

            while (true){
                if (!driver.getCurrentUrl().contains("facebook.com")) {
                    String url = driver.getCurrentUrl();
                    accessToken = url.replaceAll(".*#access_token=(.+)&.*", "$1");

                    driver.quit();

                    FacebookClient fbClient = new DefaultFacebookClient(accessToken, Version.VERSION_2_6);

                    User user = fbClient.fetchObject("me", User.class);

                    setName("User: "+user.getName());

                    Statusbar.outputSuccessWithPopup("Welcome! Mr. "+user.getName()).setLeftTopReferenceCentered();
                }
            }
        }catch (Throwable t){
            t.printStackTrace();
        }

最佳答案

使用 Chrome 驱动程序没有什么害处,它只会帮助您完成工作并避免困惑的代码。 由于您无法在 C 驱动器内执行相同操作,因此请将路径放置到任何其他驱动器并将 chrome 驱动程序 exe 放在那里。

您应该如下设置 chrome 驱动程序 exe 路径。

setNewProperty("webdriver.chrome.driver", "D:\some_dir\chromedriver.exe");

关于java - ChromeDriver for Facebook 在 JAVA 中登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49627743/

相关文章:

java - 如何判断 JDK8 lambda 是否可以赋值给类型?

facebook - 如何从 Facebook - 2019 中删除 Facebook Pixel?

php - 如何获取使用“赞”按钮发布的评论?

java - Spring Security 自动登录在 IE 浏览器的 iFrame 内不起作用

java - 在 java 中,当我输入一个有 10 个零的数字时,出现错误

基于数据库的 Facebook 连接

facebook - 所有Facebook子类别的权威列表

ios - 格式化 iso-8601 日期字符串

ios - 在 Facebook 登录按钮上获取另一个标题?

java - EDT 上的对象创建