2010-01-07 28 views
5

Je n'arrive pas à obtenir mon compte Yahoo! Plate-forme d'applications à exécuter Je continue d'obtenir l'accès refusé même si leur fichier de stratégie accepte les demandes de n'importe quel domaine.refusé en raison de l'absence d'autorisations de fichier de stratégie

OK: Policy file accepted: http://social.yahooapis.com/crossdomain.xml 
Error: Request for resource at http://social.yahooapis.com/v1/user/<user id>/profile?oauth_signature_method=HMAC-SHA1&lang=en-US&oauth_consumer_key=<key>&oauth_token=<long ass token>&oauth_version=1.0&format=json&oauth_nonce=<blah blah>&oauth_timestamp=1262846353&region=US&oauth_signature=<foo bar> by requestor from http://<my domain>/YOSSimple.swf is denied due to lack of policy file permissions. 

L'URL fonctionne, j'ai édité quelques trucs car il a mes clés et d'autres choses.


Liens vers les choses que je suis en train de faire

http://developer.yahoo.com/flash/yos/ 
http://developer.yahoo.com/flash/yos/examples/simple/YOSSimple.fla 

YOSSimple crée correctement l'URL en fait car si je tape dans mon navigateur je suis invité si je veux télécharger le fichier contient des informations concernant mon profil.

Mais il ne suffit pas de l'ouvrir en Flash.

+0

ce qui vous sandbox de sécurité? Essayez avec la confiance locale car je ne vois aucun problème avec le fichier de politique crossdomain. – bhups

+0

J'utilise CS4 btw. J'ai déjà défini ses paramètres de publication sur 'Accès au réseau uniquement 'et cela ne fonctionne toujours pas. – lemon

+0

Pourriez-vous poster le code qui fait échouer la requête? – Jacob

Répondre

2

Je suppose qu'il ne charge pas automatiquement le fichier de stratégie. Vous devriez essayer d'utiliser Security.loadPolicyFile("http://social.yahooapis.com/crossdomain.xml");

Avez-vous installé une webproxy avec laquelle vous pouvez contrôler quels fichiers sont chargés? Mon préféré est Charles mais il y a aussi des plugins FF gratuits comme Httpfox

EDIT: Je pense savoir ce qui ne va pas. Cela ne va pas dans le sens inverse, le swf de yahoo essaie d'accéder à votre swf, mais n'a pas les permissions correctes. Voulez-vous essayer

Security.allowDomain('http://social.yahooapis.com/'); 
+0

Déjà essayé manuellement le chargement de la politique, ne fonctionnait toujours pas. Je vais essayer cette chose webproxy dans quelques-uns. – lemon

+0

Les fichiers sont en cours de chargement aucun problème là-bas. [http://social.yahooapis.com/crossdomain.xml, YOSSimple.swf, etc]. Il dit qu'il charge le SWF avant le XML tho, serait-ce le problème? – lemon

+0

Non, c'est comme ça que ça devrait être. BTW, j'ai édité ma réponse, je pense que je sais ce qui ne va pas. – Creynders

0

http://www.ieinspector.com/httpanalyzer/

utilisation analyseur HTTP pour voir ce qui se passe?

vérifiez également que vous n'êtes pas sans correspondance http://www. avec http: // parce que Flash les traite comme des domaines différents

exécutez également le code localement sur votre machine. Il pourrait être vos paramètres de sécurité locaux

0

Un WebProxy simple, corrigera ceci:

<?php 
    // PHP Proxy 
    // Loads a XML from any location. Used with Flash/Flex apps to bypass security restrictions 
    // usage: proxy.php?url=http://mysite.com/myxml.xml 

    $session = curl_init($_GET['url']);     // Open the Curl session 
    curl_setopt($session, CURLOPT_HEADER, false);   // Don't return HTTP headers 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // Do return the contents of the call 
    $xml = curl_exec($session);       // Make the call 
    header("Content-Type: text/xml");     // Set the content type appropriately 
    echo $xml;  // Spit out the xml 
    curl_close($session); // And close the session 
?> 
0

Modifier l'exemple de proxy Web ci-dessus pour prendre en charge plusieurs options comme suit:

$sOptions = ""; 

foreach($_GET as $sIndex => $sValue) { 
    if ($sIndex == 'url') { 
    $url = $sValue; 
    } 
    else { 
    if (strlen($sIndex) > 0) { 
     $sOptions .= "&" . $sIndex; 
    } 
    if (strlen($sValue) > 0) { 
     $sOptions .= "=" . $sValue; 
    } 
    } 
} 

$url .= $sOptions; 

$session = curl_init($url); // Open the Curl session