2014-12-17 6 views
0

작동하지 WWW를 사용하여 프로필 사진을 얻을. URL 다운로드가 완료되지 않았습니다. 인쇄 중이 아니며 오류가 표시되지 않습니다.연합 페이스 북 SDK 난 내가 뭔가 잘 갑자기 둘째 날 URL이 다운로드되지 않은 작업 한이 코드를 사용할 때 페이스 북의 SDK를</p> <p>를 사용하여 페이스 북의 프로필 사진을 얻기 위해 노력하고 있어요

private IEnumerator getProfilePicture() 
{ 
    Debug.Log("Here to get profile picture"); 

    WWW url = new WWW("https" + "://graph.facebook.com/" + FB.UserId + "/picture?type=square"); 

    yield return url; 

    Debug.Log("url download completed"); 
    Texture2D textFb2 = new Texture2D(url.texture.width, url.texture.height, TextureFormat.ARGB32, false); 

    Sprite sprite = Sprite.Create(url.texture, new Rect(0, 0, url.texture.width, url.texture.height), new Vector2(0.5f, 0.5f), 32); 
    spriteToDisplay.GetComponent<SpriteRenderer>().sprite = sprite; 
} 
+0

그것은 나를 위해 작동합니다 - 당신은 StartCoroutine (getProfilePicture())로 호출하고 있습니까? ? – izeed

+0

그래, 나는 StartCoroutine (getProfilePicture())로 시도했다; 및 StartCoroutine ("getProfilePicture"); 둘 다 내가 다른 페이스 북의 appid와 함께 노력했지만 그것은 인쇄되지 않습니다 URL을 다운로드 완료 –

+0

http://download.unity3d.com/webplayer/images/unity-icon-big.jpg - www 필드 에서이 문자열을주는 것은 잘 작동 –

답변

0

그리고 내가 대답하고, 내가 뭘 가지고 가지 이상하다 ..

을 발견 마지막 일 동안 고민 한 후 나는 어떤 일, 어떤 체크 아무것도 변경하지 않고 동일한 코드를 사용하여 안드로이드 장치에 실행할 때 ,

은 그냥 내 전화 이 Wi-Fi를하지 패킷 데이터에 연결 해야 하나 사전 요구 사항을 ... 잘 한 일했다

한 가지 제한이 없다는 것을 주목해야한다

Wi-Fi 네트워크에서 사용할 수 있습니다. 페이 스북을 통해 와이파이 네트워크 ... 플러스 점수, 이름 및 기타 것들은 와이파 이에 ..... ..... 그 유일한 내가 다운로드 할 수있는 사진을 프로필하려는 경우 패킷 데이터를 통해 내 전화를 연결해야합니다

+0

대부분의 경우 셀룰러를 통한 다른 업스트림 프록시를 Wi-Fi를 통해 사용하고있을 가능성이 큽니다. 그것이 다른 결과를 얻는 이유입니다. – peterept

1

당신은 페이스 북의 CDN에 저장된 이미지에 302 리디렉션 페이스 북 결과에 보내는 요청. 그것이 당신을 위해 일하지 않는 이유는 Unity의 WWW 클래스가 302 리디렉션을 제대로 지원하지 못했기 때문입니다.

리소스가 CDN 네트워크로 전파되지 않았기 때문에 하루 정도 작동했을 수도 있지만 일단 다운로드하면 더 이상 다운로드 할 수 없습니다.

302은 컬을 사용하여 볼 수 있습니다 :

$ curl https://graph.facebook.com/zuck/picture?type=square -I 
HTTP/1.1 302 Found 
Location: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/c14.4.153.153/s50x50/1939620_10101266232851011_437577509_n.jpg?oh=6b6cd8460210e1de160cf8a6056df416&oe=550D5F6C&__gda__=1429858477_b29a956770b6173d71cb28eb35fa99e6 
Facebook-API-Version: v1.0 
Content-Type: image/jpeg 
Pragma: no-cache 
Access-Control-Allow-Origin: * 
X-FB-Rev: 1534884 
Cache-Control: private, no-cache, no-store, must-revalidate 
Expires: Sat, 01 Jan 2000 00:00:00 GMT 
X-FB-Debug: 3+McQVKq40Qa/6hLThwOwQTXP5dpENQqA5FvbX3elTkVxKsEw6ISvJG0eh0V5wVTUjC4fkmuZ1coTCDm2rLTZg== 
Date: Wed, 17 Dec 2014 13:33:13 GMT 
Connection: keep-alive 
Content-Length: 0 

한 가지 제안 (302)의 처리하지 Uniweb 라이브러리를 사용하는 것입니다.

자신을 처리하고 위치 응답 헤더를 추출하고 다른 WWW 요청을 보냅니다. (그러나 모든 플랫폼에서 응답 헤더를 사용할 수있는 것은 아닙니다.)

+0

응답 해 주셔서 감사합니다. 나는 플러그인을 지불하도록 허용되지 않았습니다. 다른 옵션이 있습니까? 이 경우 –

+0

경우 응답에 var redirection = www.responseHeaders [ "LOCATION"] (참고 : 대문자 여야 함)로 이동할 새 위치가 응답에 코드에 추가 할 수 있습니다. 그렇다면 다른 www 요청을하십시오. www = new WWW (리다이렉션); 수익률 반환 www; – peterept

+0

회신 해 주셔서 감사합니다. 가능한 경우 샘플 코드를 작성할 수 있습니까? www와 함께 일하는 것이 내게 정말 새롭고 모든 일들이 내 머리에 들어오지 않습니다. –