Box iOS SDKをインストールして、API呼び出しの実行。jpgファイルのダウンロード
$ brew install carthage
$ vi Cartfile
git "https://github.com/box/box-ios-sdk.git" ~> 3.0
$ carthage update --platform iOS
https://ja.developer.box.com/guides/mobile/ios/quick-start/install-ios-sdk/
RxSwiftとRxCocoaインストール
https://qiita.com/Soccerboy_Hamada/items/037f80c95acc9ae9949e
2022/2/11確認
SimulatorでSign inボタンを押した時に、確認メッセージが表示され、続けるを押すと、メールアドレスとパスワードを入力するログイン画面が表示できた。
gmailのメールアドレスでログインすると、Sorry , we couldn't find that pageのページが表示されるが、Box.comのリンクをクリックした後、Grant access to Boxボタンをクリックするとアプリに戻り、Downloadボタンで画像をダウンロードして表示できた(ログイン済み状態)
iPhone XsではSign inボタンを押しても確認メッセージもログイン画面も表示されない。画像も表示できない。
2021/04/04確認
Info.plistにBoxのClient IDをセットする
URL types
Item 0
URL Schemes
Item 0 に、boxsdk-YOUR_BOX_CLIENT_ID
BoxのClient IDは、Box Developers を開き確認
Downloadをクリックして、ログイン画面が表示され、ログインする。
再度Downloadをクリックすると画像が表示される。
MyAppにHelloWorldSwiftを作成
SwiftでBox APIを使用する準備を行う。 - プログラムを書こう!
Podfileに
pod 'BoxSDK', '~> 4.0'
を追加して、$ pod install
でインストール。
Xcodeを終了して、.xcworkspaceを開く。
API呼び出しの実行 - Box開発者向けドキュメントポータル
API呼び出しの実行
Box Developers を開き、HelloWorldSwiftを開き、Developer Tokenをコピー
Developer Tokenの有効期限は60分なので、切れたらDeveloper Tokenを再度作成する。
import BoxSDK
を追加して
override func viewDidLoad() {
の下に
let client = BoxSDK.getClient(token: "YOUR_DEVELOPER_TOKEN")
client.users.getCurrent(fields:["name", "login"]) { (result: Result<User,
BoxSDKError>) in
guard case let .success(user) = result else {
print("Error getting user information")
return
}
print("Authenticated as \(user.name)")
}
sleep(5)
を追加して、実行すると表示される
フォルダ内の項目のリストを取得 - APIリファレンス - Box開発者向けドキュメントポータル
フォルダのファイル一覧を取得
override func viewDidLoad() {
の下に追加する
let client = BoxSDK.getClient(token: "YOUR_DEVELOPER_TOKEN")
let folderItems = client.folders.listItems(folderId: "0", sort: .name, direction: .ascending) { results in
switch results {
case let .success(iterator):
for i in 1 ... 10 {
iterator.next { result in
switch result {
case let .success(item):
switch item {
case let .file(file):
print("File \(file.name) (ID: \(file.id)) is in the folder")
case let .folder(folder):
print("Subfolder \(folder.name) (ID: \(folder.id)) is in the folder")
case let .webLink(webLink):
print("Web link \(webLink.name) (ID: \(webLink.id)) is in the folder")
}
case let .failure(error):
print(error)
}
}
}
case let .failure(error):
print(error)
}
}
sleep(5)
folderIdを確認するには、ブラウザでフォルダを開いて、URLからIDをコピーします
folderIdはフォルダを表す一意の識別子
ルートフォルダは0
ファイルをダウンロード - APIリファレンス - Box開発者向けドキュメントポータル
jpgファイルをダウンロード
Info.plistにBoxのClient IDをセットする
URL types
Item 0
URL Schemes
Item 0 に、boxsdk-YOUR_BOX_CLIENT_ID
BoxのClient IDは、Box Developers を開き確認
override func viewDidLoad() {
の下に追加する
let client = BoxSDK.getClient(token: "BOX_DEVELOPER_TOKEN")
//ダウンロード先URLを設定
let directoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let pathComponent = "123456789012" // 任意のdownload先ファイル名
let url:URL = directoryURL.appendingPathComponent(pathComponent)
client.files.download(fileId: "123456789012", destinationURL: url) { (result: Result<Void, BoxSDKError>) in
guard case .success = result else {
print("Error downloading file")
return
}
print("File downloaded successfully")
}
sleep(5)
実行すると、jpgファイルがダウンロードされます。
FinderでiPhoneを開き、Files-HelloWorldSwiftを開くとファイル名を確認できる
sleep(5)が無いとダウンロードされない、Active Consoleにも表示されない。
fileIdを確認するには、ブラウザでフォルダを開いて、URLからIDをコピーします
OAuth 2.0を使用した設定 - Box開発者向けドキュメントポータル
GitHub - box/box-ios-sdk: iOS SDK for the Box Content API
box-ios-sdk/ViewController.swift at master · box/box-ios-sdk · GitHub
Sing inボタンを押して、Emailとパスワードを入力して、Codeを入力した後に遷移するページでSorry, we couldn't find that pageと表示されるが、Box.comのリンクをクリックした後、Grant access to Boxボタンをクリックするとアプリに戻り、画像がダウンロードできる(ログイン済み状態)
Box DeveloperのOAuth 2.0 Redirect URIは、
boxsdk-BOX_CLINET_ID://boxsdkoauth2redirect
Info.plistのItem 0は、
boxsdk-BOX_CLINET_ID