1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM Cloud: App IDのログイン画面にロゴをアップロードする方法

Posted at

1. はじめに

App IDのログイン画面のカスタマイズのために、ロゴをアップロードしたかった。しかし、100kB以内の透過型jpg,pngであれば良さそうだが、以下のように実際に試してみるとほとんどのファイルのアップロードに失敗する。原因はUIのバグのようだ。
image.png

2. 対応方法

IBM Cloud docsにて、App IDのAPIを参照すると、こちらのページに転送される。どうやらSwaggerでAPIを呼び出す方式のようだ。アップロードには、/management/v4/{tenantId}/config/ui/mediaを使えば良い。
https://us-south.appid.cloud.ibm.com/swagger-ui/#/Management%20API%20-%20Config/mgmt.postMedia
image.png

IBM CloudのAPIサイトなので、まぁそれを使えばいいのだが、ささっとCLIでやってしまいたいので以下のようにしてアップロードしてみた。

2-1. Service Credentialの作成

APIを利用するためには、tenant IDを指定する必要があるため、まず最初にService Credentialを作成する。
image.png
image.png

2-2. APIの実行

上記のService Credentialの情報から得られたAPIKEYやtenantIDやURL情報を使って、以下のようにアップロードする。
IAM tokenの取得についてはこちらを参考。

syasuda@MacBook Downloads % APIKEY=xxxxxx
syasuda@MacBook Downloads % tenantId=xxxxx
syasuda@MacBook Downloads % uploadfile=ninja-logo.png

syasuda@MacBook Downloads % iam_token=`curl -sX POST \
   -H "Content-Type: application/x-www-form-urlencoded" \
   -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=${APIKEY}" \
   https://iam.cloud.ibm.com/identity/token | jq -r '.access_token' `

syasuda@MacBook Downloads % curl -X POST \
  https://jp-tok.appid.cloud.ibm.com/management/v4/${tenantId}/config/ui/'media?mediaType=logo' \
  -H 'accept: application/json' \
  -H "Authorization: Bearer ${iam_token}" \
  -H 'Content-Type: multipart/form-data' \
  -F "file=@${uploadfile};type=image/png"

3. 結果の確認

無事変更された。
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?