3

yahoo ユーザーのメールを読み込もうとしています (ただし、認証ステップで行き詰まっています):

define("APPID", 'dj***NQ--');
define("SECRET", '3***7');

// Include the proper class file
$v = phpversion();

if ($v[0] == '4') {
    include("includes/yahoo/ybrowserauth.class.php4");
} elseif ($v[0] == '5') {
    include("includes/yahoo/ybrowserauth.class.php5");

} else {
    die('Error: could not find the bbauth PHP class file.');
}
$authObj = new YBBauthREST(APPID, SECRET);
//echo APPID;
// If Yahoo! isn't sending the token, then we aren't coming back from an
// authentication attempt
if (empty($_GET["token"])) {
    // You can send some data along with the authentication request
    // In this case, the data is the string 'some_application_data'
    echo 'You have not signed on using BBauth yet<br /><br />';
    echo '<a href="'.$authObj->getAuthURL('some_application_data', true).'">Click here to authorize</a>';
    return;
}

しかし、yahoo のランディング ページで次のエラーが表示されます。

無効な (欠落している) src または appid

だから私はここに問題があると思いますか?

echo '<a href="'.$authObj->getAuthURL('some_application_data', true).'">Click here to authorize</a>';

「some_aplication_data」を別のものに置き換える必要がありますか?

編集:

私も試しました:

$callback = YahooUtil::current_url()."?in_popup";  
$auth_url = YahooSession::createAuthorizationUrl(APPID, SECRET, $callback);
echo '<a href="'.$auth_url.'">Click here to authorize</a>';

ただし、リンクを作成したり、エラーを表示したりしません (スクリプトが終了します)。

4

2 に答える 2

1

ブラウザベースの認証を使用しているため、アプリケーションをそのように登録していることを確認する必要があります。https://developer.apps.yahoo.com/wsregapp/からアプリケーション ID とシークレットを取得する必要があります。これは、OAuth プロジェクトを作成する場所とは異なります。BBAuth には、アプリケーション ID とシークレットのみがあります。

あなたの場合、問題は無効なアプリケーションIDを持っていることです。他の回答と議論を考慮すると、ブラウザベースの認証プロジェクトではなく OAuth プロジェクトを作成したようです。

「「some_aplication_data」を別のものに置き換えるべきですか?」という質問について。ドキュメントによると、おそらく「some_aplication_data」を session_id() に置き換えたいと思うでしょう。

編集

上記の推奨事項に従ってコードをテストしましたが、正常に動作しています。

于 2013-01-13T00:19:59.197 に答える
0

この方法で認証 URL を生成できます。

$callback = YahooUtil::current_url()."?in_popup";  
$auth_url = YahooSession::createAuthorizationUrl(CONSUMER_KEY, CONSUMER_SECRET, $callback);  

参照 http://developer.yahoo.com/oauth/guide/oauth-userauth.html

于 2013-01-06T15:10:29.783 に答える