如何使用ABAP代码获得新浪微博应用的OAuth Access token

140 阅读1分钟
REPORT z.

DATA: lv_url         TYPE string,
      lv_data        TYPE string,
      lr_http_client TYPE REF TO if_http_client.
lv_url = 'https://api.weibo.com/oauth2/access_token?client_id=3609793985'
&& '&client_secret=ecddca133049a28eab5b3807315d2634&grant_type=authorization_code&redirect_uri='
&& 'https://api.weibo.com/oauth2/default.html&code=17b6a9d1025138c1913b45626f7e38aa'.

CALL METHOD cl_http_client=>create_by_url
  EXPORTING
    url                = lv_url
  IMPORTING
    client             = lr_http_client
  EXCEPTIONS
    argument_not_found = 1
    plugin_not_active  = 2
    internal_error     = 3
    OTHERS             = 4.
CHECK sy-subrc = 0.
CALL METHOD lr_http_client->request->set_method( 'POST' ).

CALL METHOD lr_http_client->send
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3.
CHECK sy-subrc = 0.
CALL METHOD lr_http_client->receive
  EXCEPTIONS
    http_communication_failure = 1
    http_invalid_state         = 2
    http_processing_failed     = 3.
IF sy-subrc <> 0.
  DATA: lv_error_msg TYPE string,
        lv_sysubrc   LIKE sy-subrc.
  CALL METHOD lr_http_client->get_last_error
    IMPORTING
      code    = lv_sysubrc
      message = lv_error_msg.
  WRITE: / lv_error_msg.
  RETURN.
ENDIF.
lv_data = lr_http_client->response->get_cdata( ).
WRITE lv_data.

在这里插入图片描述