트위터에서 게임 스쿠쇼를 공유하는 과정을 만들 때 빠진 이야기
전치
iOS/Android/WebGL
의 3개로 했다 Imgur
를 사용하기로 결정했습니다 2018.4.12f1
만들어 보았습니다.
빠진 이야기
카드 표시가 업로드한 이미지의 직접 URL이 표시되지 않음
사건
API 응답이 업로드 한 이미지의 직접 URL이므로 URL을 그대로 사용했지만 카드가 표시되지 않았습니다.
response는 이런 느낌<?xml version="1.0" encoding="utf-8"?>
<data type="array" success="1" status="200">
<id>xxxxx</id><title/><description/><datetime>1574052543</datetime><type>image/png</type><animated>false</animated><width>1082</width><height>646</height><size>34163</size><views>0</views><bandwidth>0</bandwidth><vote/><favorite>false</favorite><nsfw/><section/><account_url/><account_id>0</account_id><is_ad>false</is_ad><in_most_viral>false</in_most_viral><has_sound>false</has_sound><tags/><ad_type>0</ad_type><ad_url/><edited>0</edited><in_gallery>false</in_gallery><deletehash>yyyyy</deletehash><name/>
<link>https://i.imgur.com/xxxxx.png</link>
</data>
해결 방법
응답으로 돌아온 업로드한 이미지의 직접 URL 확장자(위의 예라면 .png
그래서 확장자를 배제한 형태로 url 파라미터에 건네주도록 했다.
※이런 페이지
ScreenCapture.CaptureScreenshot에서 Android 빌드에서 오류가 발생했습니다.
사건
ScreenCapture.CaptureScreenshot
는 보존 패스를 설정하면 그 패스에 보존할 수 있다고 하는 전제로 구현하고 있었다.
Editor/WebGL 빌드에서는 확실히 문제 없었다.
Android 빌드에서 실행한 순간 이런 느낌의 에러에. .
11-15 21:10:56.490 12383 12401 I Unity : capture_path = /storage/emulated/0/Android/data/com.Yasuragitei.UnityTweet/files/201911152110564885.png
11-15 21:10:56.490 12383 12401 I Unity :
11-15 21:10:56.490 12383 12401 I Unity : (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
11-15 21:10:56.490 12383 12401 I Unity :
11-15 21:10:56.801 12383 12547 E Unity : Failed to store screen shot (/storage/emulated/0/Android/data/com.Yasuragitei.UnityTweet/files/storage/emulated/0/Android/data/com.Yasuragitei.UnityTweet/files/201911152110564885.png)
capture_path = xxx
는 자전에서 logging 했으므로, 패스 자체는 문제 없을 것 같아…Failed to store screen shot
뒤에 출력되는 경로가 뭔가 이상하다…
해결 방법
이런 느낌으로 모바일용은 파일명만 지정해 실행하도록 했다.
string fileName = string.Format("{0:yyyyMMddHmmssFFFF}.{1}", DateTime.Now, cImageSuffix);
string filePath = Application.persistentDataPath + "/" + fileName;
// モバイルプラットフォームはファイル名指定で、勝手にpersistentDataPath配下となる
#if !UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
ScreenCapture.CaptureScreenshot(fileName);
#else
ScreenCapture.CaptureScreenshot(filePath);
#endif
제대로 문서를 읽자.
공식 문서에는 제대로 쓰여졌습니다.
ScreenCapture.CaptureScreenshot
그래서 안심하고 Application.persistentDataPath
부하에 보존되는 전제로 처리를 쓸 수 있을 것.
On mobile platforms the filename is appended to the persistent data path.
See Application.persistentDataPath for more information.
카드 표시 방법은 웹 버전과 트위터 클라이언트 버전과 다릅니다.
사건
제작으로 캡처 이미지 업로드 대상 URL과 게임 URL 두 가지를 공존하는 형태로 중얼거리고 싶었다.
그러나, Web판은 url 파라미터로 지정한 URL을 card 표시해 줄 것 같고, Twitter 클라이언트측에서는 URL의 순서가 빠른 쪽이 card 표시 대상이 되어 버린다.
즉,
이런 일이지만
이렇게되어 버렸다.
해결 방법
여기에서 해결할 수 있는 문제가 아닌 것 같았으므로, 파라미터를 지정해 주는 것으로 ImgurAPI를 text/url
지정(Web판용)으로 실행, 혹은 textのみ
지정(URL의 순서를 이미지 URL 우선으로 한다)로 실행할 수 있도록 조금 무리하게 처리했다.
감상
카드 표시가 업로드한 이미지의 직접 URL이 표시되지 않음
사건
API 응답이 업로드 한 이미지의 직접 URL이므로 URL을 그대로 사용했지만 카드가 표시되지 않았습니다.
response는 이런 느낌
<?xml version="1.0" encoding="utf-8"?>
<data type="array" success="1" status="200">
<id>xxxxx</id><title/><description/><datetime>1574052543</datetime><type>image/png</type><animated>false</animated><width>1082</width><height>646</height><size>34163</size><views>0</views><bandwidth>0</bandwidth><vote/><favorite>false</favorite><nsfw/><section/><account_url/><account_id>0</account_id><is_ad>false</is_ad><in_most_viral>false</in_most_viral><has_sound>false</has_sound><tags/><ad_type>0</ad_type><ad_url/><edited>0</edited><in_gallery>false</in_gallery><deletehash>yyyyy</deletehash><name/>
<link>https://i.imgur.com/xxxxx.png</link>
</data>
해결 방법
응답으로 돌아온 업로드한 이미지의 직접 URL 확장자(위의 예라면
.png
그래서 확장자를 배제한 형태로 url 파라미터에 건네주도록 했다.※이런 페이지
ScreenCapture.CaptureScreenshot에서 Android 빌드에서 오류가 발생했습니다.
사건
ScreenCapture.CaptureScreenshot
는 보존 패스를 설정하면 그 패스에 보존할 수 있다고 하는 전제로 구현하고 있었다.Editor/WebGL 빌드에서는 확실히 문제 없었다.
Android 빌드에서 실행한 순간 이런 느낌의 에러에. .
11-15 21:10:56.490 12383 12401 I Unity : capture_path = /storage/emulated/0/Android/data/com.Yasuragitei.UnityTweet/files/201911152110564885.png
11-15 21:10:56.490 12383 12401 I Unity :
11-15 21:10:56.490 12383 12401 I Unity : (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
11-15 21:10:56.490 12383 12401 I Unity :
11-15 21:10:56.801 12383 12547 E Unity : Failed to store screen shot (/storage/emulated/0/Android/data/com.Yasuragitei.UnityTweet/files/storage/emulated/0/Android/data/com.Yasuragitei.UnityTweet/files/201911152110564885.png)
capture_path = xxx
는 자전에서 logging 했으므로, 패스 자체는 문제 없을 것 같아…Failed to store screen shot
뒤에 출력되는 경로가 뭔가 이상하다…해결 방법
이런 느낌으로 모바일용은 파일명만 지정해 실행하도록 했다.
string fileName = string.Format("{0:yyyyMMddHmmssFFFF}.{1}", DateTime.Now, cImageSuffix);
string filePath = Application.persistentDataPath + "/" + fileName;
// モバイルプラットフォームはファイル名指定で、勝手にpersistentDataPath配下となる
#if !UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
ScreenCapture.CaptureScreenshot(fileName);
#else
ScreenCapture.CaptureScreenshot(filePath);
#endif
제대로 문서를 읽자.
공식 문서에는 제대로 쓰여졌습니다.
ScreenCapture.CaptureScreenshot
그래서 안심하고
Application.persistentDataPath
부하에 보존되는 전제로 처리를 쓸 수 있을 것.On mobile platforms the filename is appended to the persistent data path.
See Application.persistentDataPath for more information.
카드 표시 방법은 웹 버전과 트위터 클라이언트 버전과 다릅니다.
사건
제작으로 캡처 이미지 업로드 대상 URL과 게임 URL 두 가지를 공존하는 형태로 중얼거리고 싶었다.
그러나, Web판은 url 파라미터로 지정한 URL을 card 표시해 줄 것 같고, Twitter 클라이언트측에서는 URL의 순서가 빠른 쪽이 card 표시 대상이 되어 버린다.
즉,
이런 일이지만
이렇게되어 버렸다.
해결 방법
여기에서 해결할 수 있는 문제가 아닌 것 같았으므로, 파라미터를 지정해 주는 것으로 ImgurAPI를
text/url
지정(Web판용)으로 실행, 혹은 textのみ
지정(URL의 순서를 이미지 URL 우선으로 한다)로 실행할 수 있도록 조금 무리하게 처리했다.감상
Reference
이 문제에 관하여(트위터에서 게임 스쿠쇼를 공유하는 과정을 만들 때 빠진 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nir_takemi/items/3b20790d9775f9308a9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)