阅读了box网站上的oauth文档后,我了解了获取access_token和refresh_token的步骤,这需要authorization_code。
发送获取请求步骤2:在浏览器中输入框的凭据然后单击“允许”按钮,重定向到指定的redirect_uri,状态为= authenticated& code = AUTHORIZATION_CODE
步骤3:现在使用来自step2的重定向url中的AUTHORIZATION_CODE,可以通过在主体中使用AUTHORIZATION_CODE,client_id,client_secret向https://www.box.com/api/oauth2/token发送POST请求然后解析返回的json响应来以编程方式完成获取access_token。 / p>
我的问题是:是否可以通过编程方式执行step1和step2而不是通过浏览器?
非常感谢你!答案 0 :(得分:2)
当前的OAuth 2流程要求用户通过浏览器,无法以编程方式完成。
答案 1 :(得分:1)
有可能,只需使用cURL模仿每个表单,然后使用第二步发布Cookie。 第一次你需要3个请求,下次只需要一个(如果refresh_token没有过期,否则再次3个)
答案 2 :(得分:0)
关于模仿浏览器事务的观点是一个很好的点,但是你不想使用cURL,而是想要使用更高级别的工具,比如mechanize(可用于ruby,perl和python)。它将为您处理cookie,并可以编程方式遍历表单和链接。有利于页面抓取和编写脚本,以便从TicketMaster订购热门音乐会门票!
答案 3 :(得分:0)
如果你有授权码,那么你应该能够通过SDK获得OAuth令牌(access_token,refresh_token),对吗?
答案 4 :(得分:0)
作为对aIKid的回应,这是我第一次获得BoxClient
BoxClient client = new BoxClient(clientId, clientSecret);
Map<String,Object> authToken = new HashMap<String,Object>();
authToken.put("exprires_in","3600");
authToken.put( "token_type","bearer");
authToken.put("refresh_token", clientRefreshToken);
authToken.put("access_token",clientAccessToken);
BoxOAuthToken oauthToken = new BoxOAuthToken(authToken);
client.authenticate(oauthToken);
return client;
然后,我有这个来创建一个新用户,
BoxUser createdUser = new BoxUser();
BoxUserRequestObject createUserRequest = BoxUserRequestObject.createEnterpriseUserRequestObject("someEmail.domain.com", "test user");
createdUser = client.getUsersManager().createEnterpriseUser(createUserRequest);
现在我正试图找出如何在用户和群组上执行CRUD操作的RUD部分。