当我试图通过卷曲调用盒子api时,我收到了这个错误.
curl: (26) couldn't open file
Run Code Online (Sandbox Code Playgroud)
找不到原因!我用正确的文件名称这个api -
curl https://upload.view-api.box.com/1/documents \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-type: multipart/form-data" \
-F file=@A_correct_file_name
Run Code Online (Sandbox Code Playgroud)
我已经看到了所有三个已经问过的问题,但其中有两个没有答案,一个是针对facebook的.
我正在尝试使用box app用户ID创建访问令牌.我使用以下代码创建了box app用户
curl https://api.box.com/2.0/users \
-H "Authorization: Bearer <TOKEN>" \
-d '{"name": "Ned Stark", "is_platform_access_only": true}' \
-X POST
Run Code Online (Sandbox Code Playgroud)
然后给出以下结果
{"type":"user","id":"2199107004","name":"Ned Stark","login":"AppUser_399382_9BNZHI03nJ@boxdevedition.com","created_at":"2017-08-03T00:58:04-07:00"
Run Code Online (Sandbox Code Playgroud)
是否可以使用box app用户ID生成访问令牌.
编辑
我在BOX API中生成了公钥.然后我有文件,如公共密钥和私人密钥细节,如下面,
{
"boxAppSettings": {
"clientID": <Client ID>,
"clientSecret": <clientsecret>,
"appAuth": {
"publicKeyID": <publickeyid>,
"privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\Key heresn-----END ENCRYPTED PRIVATE KEY-----\n",
"passphrase": <phrase>
}
},
"enterpriseID": <enterpriseId>
}
Run Code Online (Sandbox Code Playgroud)
然后我生成了头和有效负载,如下所示
$header = ["typ"=> "JWT", "alg"=>"RS256","kid"=> <public key id>];
$payload = [
"iss"=> "<client id>",
"sub"=> "<APP USER ID>",
"box_sub_type"=> "user",
"aud"=>"https://api.box.com/oauth2/token",
"jti"=>"<I don't …
Run Code Online (Sandbox Code Playgroud) 是否有通过提供路径获取文件ID的直接方法(例如/some/folder/deep/inside/file.txt)?我知道这可以通过递归检查文件夹的内容来完成,但一个简单的调用会好得多.
谢谢
要么我是密集的,要么文档假设我已经知道他们告诉我什么,但我需要澄清一个box.com应用程序的身份验证.我真的不明白这是怎么回事.当我读到它:
显然我在某个地方迷路了.
而且,为什么我必须让服务器参与这个过程?制作JavaScript应用程序的文章是指对令牌的直接请求.那个地方有文件吗?
我目前有我的代码的上传部分工作,我将如何将其转换为将从 box 文件夹中下载相应文件的程序?
这是上传程序:
import requests
import json
#the user acces token
access_token = 'UfUNeHhv4gIxFCn5WEXHgBJwfG8gHT2o'
#the name of the file as you want it to appear in box
dst_filename = 'box_file'
#the actual file path
src_directory = 'C:\Python\cache\\'
#the name of the file to be transferred
src_filename = 'Wildlife.wmv'
#the id of the folder you want to upload to
parent_id = '0'
counter = 1
for counter in range(1, 6):
src_file = (src_directory + src_filename + '-' + str(counter))
print(src_file) …
Run Code Online (Sandbox Code Playgroud) 我们需要为文件创建共享链接,然后检索该链接,以便我们可以在应用程序中显示它.我们能够为特定文件创建共享链接(我们可以在Web上的Box Account中看到它)但我们无法通过API检索sharedLink.虽然isShared
方法返回YES ,但它总是为零.
从头文件中BoxObject.h
我们发现这两个方法提供了有关项目共享状态的必要信息.
@protocol BoxObject
// ...
// Information about the shared state of the item
@property (readonly, getter = isShared) BOOL shared;
@property (readonly) NSString *sharedLink;
//...
@end
Run Code Online (Sandbox Code Playgroud)
这就是我们创建共享链接的方式.
[photo
isShared]
返回NO.[photo shareWithPassword:@"" message:@"" emails:[NSArray
arrayWithObject:@""] callbacks:^(id<BoxOperationCallbacks>
on1){...}];
[photo isShared]
返回YES但[photo sharedLink]返回nil如果我们检查Web,我们可以看到该文件实际上已共享,但我们无法从Box SDK中检索sharedLink.
有人有同样的问题吗?
我不知道我做错了什么,但每次我试图获取令牌(当然在用户身份验证之后),结果始终是无效的grant_type参数或参数丢失
可能与Box API相关的是,在获取访问令牌时始终返回无效的grant_type参数
这是我的提琴结果:
POST https://api.box.com/oauth2/token HTTP/1.1
Host: api.box.com
Content-Length: 157
Expect: 100-continue
Connection: Keep-Alive
grant_type=authorization_code&code=nnqtYcoik7cjtHQYyn3Af8uk4LG3rYYh&client_id=[myclientId]&client_secret=[mysecret]
Run Code Online (Sandbox Code Playgroud)
结果:
HTTP/1.1 400 Bad Request
Server: nginx
Date: Thu, 07 Mar 2013 11:18:36 GMT
Content-Type: application/json
Connection: keep-alive
Set-Cookie: box_visitor_id=5138778bf12a01.27393131; expires=Fri, 07-Mar-2014 11:18:35 GMT; path=/; domain=.box.com
Set-Cookie: country_code=US; expires=Mon, 06-May-2013 11:18:36 GMT; path=/
Cache-Control: no-store
Content-Length: 99
{"error":"invalid_request","error_description":"Invalid grant_type parameter or parameter missing"}
Run Code Online (Sandbox Code Playgroud)
即使遵循curl示例也会出现相同的错误.任何帮助,将不胜感激.
编辑:尝试使用其他redirect_uri参数,但仍然是相同的错误
POST https://api.box.com/oauth2/token HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: api.box.com
Content-Length: 187
Expect: 100-continue
Connection: Keep-Alive
grant_type=authorization_code&code=R3JxS7UPm8Gjc0y7YLj9qxifdzBYzLOZ&client_id=*****&client_secret=*****&redirect_uri=http://localhost
Run Code Online (Sandbox Code Playgroud)
结果: …
我被授予了文件夹中的访问权限(协作).我需要的是每天访问该文件夹并从中获取文件.现在,我生成的开发人员令牌在1小时后到期.有没有一种方法可以让我authorization code
没有第一条腿,这需要一个用户界面.这样,每当我获取文件时,我都可以刷新访问权限.
我正在使用.Net的Box API SDK,并尝试将其设置为使用JSON Web Tokens而不是OAuth2.
当我实例化BoxConfig对象时,我需要提供企业ID:
var config = new BoxConfig( clientId, clientSecret, enterpriseId, jwtPrivateKey, jwtPrivateKeyPassword, jwtPublicKeyId );
Run Code Online (Sandbox Code Playgroud)
看到一些有冲突的信息:
有人可以指出我在哪里,具体来说,我可以找到企业ID?