Swifter를 사용하여 이미지 게시

소개



Swift에서 TwitterAPI를 사용하여 이미지를 게시하고 싶었지만 기사가별로 없으므로 게시합니다.
Swifter라는 라이브러리를 사용하고 있습니다. 문서에는 이미지를 투고하는 것에 대해서는 쓰고 있지 않았습니다만 코드 읽고 나면 그들 문장이 있었으므로 그것을 사용했습니다.
htps : // 기주 b. 코 m / t t don ly / su f r

이번에 할 일


  • Swifter로 aAuth 인증한다.
  • 이미지를 트위터에 게시합니다.

  • OAuth 인증.



    이것에 관해서는 기사를 따로 쓰고 있으므로 그쪽을 봐 주세요.

    이미지를 게시합니다.


    let image = UIImage(hogehoge)//投稿する画像を入れる。
    let data = image.pngData()//data型に変換
    //aouth認証で入手したやつを入れる。
    let swifter = Swifter(consumerKey: 取得したkey,
                          consumerSecret: 取得したkey,
                          oauthToken: 取得したkey,
                          oauthTokenSecret: 取得したkey)
    //ツイート。statusには文をmediaには画像をdata型に変換したものを入れる
    swifter.postTweet(status: "test", media: data!,success: { json in
      print(json)//成功時
    }, failure: {error in
      print(error)//失敗時
    })
    

    이런 느낌으로 트윗할 수 있었습니다.
    문장만 투고하는 postTweet는 문서에 실려 있었습니다만 이미지 투고도 같은 느낌으로 트윗 할 수 있었습니다.


    보충 (413 payload too large error가 돌아오는 경우)



    자신의 경우 iPhone 폴더에서 이미지를 읽고 앱에 저장 한 후
    다시 앱에서 저장한 이미지를 읽는 트위터에 게시하는 절차였기 때문에 이 절차의 어딘가에서 이미지가 커져 버렸을지도 모릅니다.
    어쩌면 같은 오류가 돌아오는 사람이 있을지도 모르기 때문에 해결 방법을 올려 둡니다.
    let image = UIImage(hogehoge)//投稿する画像
    //大きさをresizeする
    let width = image.size.width * 0.1
    let height = image.size.height * 0.1
    UIGraphicsBeginImageContextWithOptions(CGSize(width: width, height: height), false, 1.0)
    image.draw(in: CGRect(x: 0, y: 0, width: width, height: height))
    let resizeImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    //大きさをresizeした後にdata型に変換
    image.pngData()
    

    이런 느낌으로 이미지의 크기를 resize 해주면 잘 tweet 할 수있었습니다. 0.1배가 아니어도 좋을지도 모릅니다만 좋은 느낌의 크기로 해 트윗 해 주세요.
    참고: 이미지가 거칠어질 수 있습니다.

    좋은 웹페이지 즐겨찾기