2012-03-06 7 views
0

私は、管理者によって公開されたアクティビティを、友人だけでなく、ネットワークのすべてのメンバーに見せるようにしようとしています。 今まで私が作ることができる限り、テーブルストリームは私のメッセージが公開されることを妨げている、それはプロフィールメッセージを作るだけです。フィード内でのみ表示されます。 これを強制する方法はありますか?ソーシャルエンジンで誰もが見られるようにするにはどうすればいいですか?

[編集] 私のコードは私のアカウントでつぶやきを選んでいます。作成した設定を使用しています(twitterからのscreen_nameや、フィードでツイートを公開しているユーザーなど)。 コードは次のようになっています: - > twitterユーザーがメッセージを読むための設定があるかどうかを確認しています。 - >テーブルに保存 - >このメッセージを誰にでも読めるように(理論上)認めるか、エーテルは出版社の友人かどうか。 - >作成したアクティビティを追加します。

$TwitterUser = Engine_Api::_()->getApi ('settings', 'core')->getSetting ('core.twitter.screen_name'); 

if ($TwitterUser != '') { 
    // Ultimo tweet postado 
    $TwitterUser = Engine_Api::_()->getApi ('settings', 'core')->getSetting ('core.twitter.screen_name'); 
    $table = Engine_Api::_()->getDbtable ('tweets', 'user'); 
    $query = $table->select()->order ('tweets_id desc')->limit(1); 

    $lastTweet = $table->fetchRow ($query); 
    // Set the configuration parameters 
    $config = array ('adapter' => 'Zend_Http_Client_Adapter_Socket', 'ssltransport' => 'tls'); 

    // Instantiate a client object 
    if (is_null ($lastTweet)) { 
     $client = new Zend_Http_Client ("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=$TwitterUser&count=4&include_rts=1", $config); 
    } else { 
     $client = new Zend_Http_Client ("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=$TwitterUser&include_rts=1&since_id=" . $lastTweet->real_id, $config); 
    } 
    // The following request will be sent over a TLS secure connection. 
    $response = $client->request();  
    // Pegando a resposta 
    $body = json_decode ($response->getBody()); 
    if (! empty ($body)) { 
     $db = Engine_Api::_()->getDbtable('tweets', 'user')->getAdapter(); 
     $db->beginTransaction(); 

     try 
     { 
     $table = Engine_Api::_()->getDbtable ('users', 'user'); 
     $twitter_user = $table->fetchRow ($table->select()->where ('user_id = ?', Engine_Api::_()->getApi ('settings', 'core')->getSetting ('core.twitter.user_id'))); 
     $table = Engine_Api::_()->getDbtable ('tweets', 'user'); 
     $activityApi = Engine_Api::_()->getDbtable ('actions', 'activity'); 
     foreach (array_reverse($body) as $tweet) { 
      $data = explode (' ', $tweet->created_at); 
      $meses = array ('Jan' => '01', 'Fev' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06', 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12'); 
      $tweet_date = $data ['5'] . "-" . $meses [$data [1]] . '-' . $data [2] . " " . $data [3]; 
      $tweet_date = (date ('Y-m-d H:i:s', strtotime ($tweet_date))); 
      $last_tweet = $table->createRow(); 
      $last_tweet->setFromArray(array(
        'real_id' => $tweet->id_str, 
        'user_id' => $tweet->user->id_str, 
        'screen_name' => $tweet->user->screen_name, 
        'body' => $tweet->text, 
        'retweeted' => $tweet->retweeted, 
        'created_at' => $tweet_date, 
        'profile_image_url' => $tweet->user->profile_image_url, 
        'coordinates' => $tweet->coordinates 
      )); 
      $last_tweet->save(); 
      // Authorizations 
      $auth = Engine_Api::_()->authorization()->context; 
      $auth->setAllowed($last_tweet, 'everyone', 'view', true); 
      $auth->setAllowed($last_tweet, 'everyone', 'comment', true); 
      $auth->setAllowed($last_tweet, 'everyone', 'likes', true); 
      $action = $activityApi->addActivity ($twitter_user,$last_tweet, 'post_twitter', $tweet->text); 
      if($action) { 
       $activityApi->attachActivity($action, $last_tweet); 
      } 
     } 
     // Commit 
     $db->commit(); 
     } catch (Exception $e) { 
       $db->rollBack(); 
       throw $e; 
      } 
     } 
} 

問題は発生しませんが、私がトラッキングしているつぶやきは、私が公開したユーザーによって赤色になる可能性があります。

+0

どのように誰かがこれに答えることができますか?あなたは詳細を何も与えません。どのようなネットワークですか?どのような活動ですか?どのテーブルストリームですか?どのようなメッセージですか?何が餌ですか?何を強制する?どのコードが失敗していますか?あなたはそれが何をすると思いますか?エラーメッセージが表示されますか?どうぞお手伝いしてください!コードを見せてください! – vascowhite

+0

タグの前に読んで、その判断になるよ!ソーシャルエンジンは何ですか?あなたがソーシャルエンジンにプログラムするなら、私が話していることを知るべきです – Palantir

答えて

0

このaction_idのストリームテーブルにエントリを作成する必要があります。

関連する問題