0
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?

指定ログインでエラー

Last updated at Posted at 2024-12-20

Sandboxから本番環境にアクセスする指定ログインを作成したいのですが...
うまくいきませんね。

管理承認状況が「未承認」なので、保存して認証させます。

image.png

次の画面をみるとsandboxなので、無理やりlogin.salesforceにURLを変えます

image.png

ログイン先が変わりました

image.png

ちゃんと認証画面が出ます

image.png

許可をクリックしてもダメですね。

image.png

ブラウザの戻るでもエラーです。
image.png

削除して作り直してもできませんね。腐ってる

仕方ないので指定ログインを使用しないApexのコードを書く

public static String callout_org2() {

        Http http = new Http();
        String path ='https://test.my.salesforce.com/services/oauth2/token';
        HttpRequest req = new HttpRequest();
        req.setEndpoint(path);
        req.setMethod('POST');
        String ClientId = 'xxxxxx';
		String ClientSecret = 'yyyyy';
        String username = 'xyz@test.co.jp';
		String password = '********';
        
        req.setHeader('Content-Type', 'application/x-www-form-urlencoded');
		req.setBody('grant_type=password' + 
              '&client_id=' + ClientId + 
              '&client_secret=' + ClientSecret + 
              '&username=' + username +
              '&password=' + password
           );
		HttpResponse res = http.send(req);
  		
        BodyToken t = (BodyToken)JSON.deserializeStrict(res.getBody(),BodyToken.class);
        
        Http http2 = new Http();
        String path2 ='https://test.my.salesforce.com';

        String parameters = '/services/data/v62.0/limits';
        HttpRequest req2 = new HttpRequest();
        req2.setEndpoint(path2 + parameters);
        req2.setHeader('Authorization','Bearer ' + t.access_token);
        req2.setMethod('GET');
        
        HttpResponse res2 = http.send(req2);
        system.debug(Logginglevel.INFO,'===> '+ res2.getBody());
        
        return res.getBody();
    }
    
    public class BodyToken {
        public String access_token;
        public String instance_url;
        public String id;
        public String token_type;
        public String issued_at;
        public String signature;
    }

ちゃんと取得できましたね。やっぱり最後はApexのコードが頼りです。よく分からんエラーでも回避できます。

image.png

0
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
0
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?